本节和下一节讲解如何使用 PHP 来验證表单数据
提示:在处理 PHP 表单时请重视安全性!
这些页面将展示如何安全地处理 PHP 表单。对 HTML 表单数据进行适当的验证对于防范黑客和垃圾郵件很重要!
我们稍后使用的 HTML 表单包含多种输入字段:必需和可选的文本字段、单选按钮以及提交按钮:
上面的表单使用如下验证规则:
必需必须包含字母和空格。 |
必需必须包含有效的电子邮件地址(包含 @ 和 .)。 |
可选如果选填,则必须包含有效的 URL |
可选。多行输入字段(文本框) |
首先我们看一下这个表单的纯 HTML 代码:
gender 字段是单选按钮,HTML 代码是这样的:
表单的 HTML 代码是这样的:
当提交此表单时通过 method="post" 发送表单数据。
$_SERVER["PHP_SELF"] 是一种超全局变量它返回当前执行脚本的文件名。
因此$_SERVER["PHP_SELF"] 将表单数据发送到页面本身,而不是跳转到另一张页面这样,用戶就能够在表单页面获得错误提示信息
如果您的页面使用了 PHP_SELF,用户能够输入下划线然后执行跨站点脚本(XSS)
提示:跨站点脚本(Cross-site scripting,XSS)是一种计算机安全漏洞类型常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本
- 代码鈈会执行,因为会被保存为转义代码就像这样:
现在这条代码显示在页面上或 e-mail 中是安全的。
在用户提交该表单时我们还要做两件事:
接下来我们创建一个检查函数(相比一遍遍地写代码,这樣效率更好)
现在,我们能够通过 test_input() 函数检查每个 $_POST 变量脚本是这样的:
请注意在脚本开头,我们检查了表单是否使用 $_SERVER["REQUEST_METHOD"] 进行提交如果 REQUEST_METHOD 是 POST,那么表单已被提交 - 并且应该对其进行验证如果未提交,则跳过验证并显示一个空白表单
不过,在上面的例子中所有输入字段都是鈳选的。即使用户未输入任何数据脚本也能正常工作。
下一步是制作必填输入字段并创建需要时使用的错误消息。
如果你的验证用PHP在后端那么就鼡Ajax;
如果你的验证用js在前端,那么直接加alert;