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"; 
}
posted @ 2018-10-10 15:36  cw556666  阅读(111)  评论(0)    收藏  举报