PHP学习4 - 表单验证
理解POST请求操作
PHP 表单验证
一个简单的表单验证,就是获取到form中的数据,并在php中获取到值。实际上,我们要考虑的还有其他。
1、安全性。
表单验证时,往往传入的数据,是可能会被脚本攻击,如果php在解析时发现脚本,就会立即执行脚本,造成不可预知的操作。
-> function test_input($data) {
$data = trim($data); //去除用户输入的不必要字符 多余的空格
$data = stripslashes($data);//删除用户输入数据中的反斜杠
$data = htmlspecialchars($data);//把特殊字符转成HTML实体。
return $data;
}
2、错误信息。
我们在使用变量接住表单数据的时候,并且需要一步操作。 来接住如果错误的信息,存入错误变量中。
通常简单的判断就是 empty() 来检测 post传入的数据是否为空。
preg_match() 函数检索字符串的模式,如果模式存在则返回 true,否则返回 false:
验证名字:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "只允许字母和空格!";
}
验证email:
$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
$emailErr = "无效的 email 格式!";
}
验证url:
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%
=~_|]/i",$website)) {
$websiteErr = "无效的 URL";
}

浙公网安备 33010602011771号