本节和下一节讲解如何使用 PHP 来验证表单数据。
创新互联公司专注于德州企业网站建设,响应式网站开发,购物商城网站建设。德州网站建设公司,为德州等地区提供建站服务。全流程按需求定制网站,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
提示:在处理 PHP 表单时请重视安全性!
这些页面将展示如何安全地处理 PHP 表单。对 HTML 表单数据进行适当的验证对于防范黑客和垃圾邮件很重要!
我们稍后使用的 HTML 表单包含多种输入字段:必需和可选的文本字段、单选按钮以及提交按钮:
上面的表单使用如下验证规则:
字段 验证规则 Name 必需。必须包含字母和空格。 E-mail 必需。必须包含有效的电子邮件地址(包含 @ 和 .)。 Website 可选。如果选填,则必须包含有效的 URL。 Comment 可选。多行输入字段(文本框)。 Gender 必需。必须选择一项。首先我们看一下这个表单的纯 HTML 代码:
name、email 和 website 属于文本输入元素,comment 字段是文本框。HTML 代码是这样的:
Name: E-mail: Website: Comment:gender 字段是单选按钮,HTML 代码是这样的:
Gender:FemaleMale表单的 HTML 代码是这样的:
$_SERVER["PHP_SELF"] 变量能够被黑客利用!
如果您的页面使用了 PHP_SELF,用户能够输入下划线然后执行跨站点脚本(XSS)。
提示:跨站点脚本(Cross-site scripting,XSS)是一种计算机安全漏洞类型,常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。
假设我们的一张名为 "test_form.php" 的页面中有如下表单:
这段代码加入了一段脚本和一个提示命令。并且当此页面加载后,就会执行 JavaScript 代码(用户会看到一个提示框)。这仅仅是一个关于 PHP_SELF 变量如何被利用的简单无害案例。
您应该意识到
- 代码不会执行,因为会被保存为转义代码,就像这样:
<script>location.href('http://www.hacked.com')</script>现在这条代码显示在页面上或 e-mail 中是安全的。
在用户提交该表单时,我们还要做两件事:
(通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行)(通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠(\)接下来我们创建一个检查函数(相比一遍遍地写代码,这样效率更好)。
我们把函数命名为 test_input()。
现在,我们能够通过 test_input() 函数检查每个 $_POST 变量,脚本是这样的:
实例请注意在脚本开头,我们检查了表单是否使用 $_SERVER["REQUEST_METHOD"] 进行提交。如果 REQUEST_METHOD 是 POST,那么表单已被提交 - 并且应该对其进行验证。如果未提交,则跳过验证并显示一个空白表单。
不过,在上面的例子中,所有输入字段都是可选的。即使用户未输入任何数据,脚本也能正常工作。
下一步是制作必填输入字段,并创建需要时使用的错误消息。