PHP表单验证
PHP 表单验证
本章节我们将介绍如何使用PHP验证客户端提交的表单数据。
应该在任何可能的时候对用户输入进行验证(通过客户端脚本)。浏览器验证速度更快,并且可以减轻服务器的负载。
如果用户输入需要插入数据库,您应该考虑使用服务器验证。在服务器验证表单的一种好的方式是,把表单传给它自己,而不是跳转到不同的页面。这样用户就可以在同一张表单页面得到错误信息。用户也就更容易发现错误了。
在处理PHP表单时我们需要考虑安全性。
本章节我们将展示PHP表单数据安全处理,为了防止黑客及垃圾信息我们需要对表单进行数据安全验证。
PHP 表单验证实例
上面的表单使用如下验证规则:
首先我们看一下这个表单的纯 HTML 代码:
文本字段
name、email 和 website 属于文本输入元素,comment 字段是文本框。HTML 代码是这样的:
Name: E-mail: Website: Comment:
单选按钮
gender 字段是单选按钮,HTML 代码是这样的:
Gender: Female Male
表单元素
表单的 HTML 代码是这样的:
这段代码加入了一段脚本和一个提示命令。并且当此页面加载后,就会执行 JavaScript 代码(用户会看到一个提示框)。这仅仅是一个关于 PHP_SELF 变量如何被利用的简单无害案例。
您应该意识到 ">
无法利用,没有危害!
通过 PHP 验证表单数据
我们要做的第一件事是通过 PHP 的 htmlspecialchars() 函数传递所有变量。
在我们使用 htmlspecialchars() 函数后,如果用户试图在文本字段中提交以下内容:
- 代码不会执行,因为会被保存为转义代码,就像这样:
现在这条代码显示在页面上或 e-mail 中是安全的。
在用户提交该表单时,我们还要做两件事:
1. (通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行)
2. (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠()
接下来我们创建一个检查函数(相比一遍遍地写代码,这样效率更好)。
我们把函数命名为 test_input()。