理解:在表单的验证过程中,我们不仅要验证是否为空,格式是否正确也非常重要。就像邮箱,如果我们没有格式验证的话,那么只要不为空,表单就会提供给数据库。但如果格式错误,系统就无法通过邮箱与用户取得联系。所谓格式验证,其实就是值与模式匹配的问题。
<form action="register.php" method="POST">
用户名:<br />
<input type="text" name="username" />
<br />
密码:<br />
<input type="password" name="password" />
密码由5-21个字符组成
<br />
<input type="submit" value="注册" />
</form>
例如上述表单,如果不使用正则表达式进行格式验证,我们会这样处理
if(!empty($_POST['username'])){
$username=$_POST['username'];
}else{
$error[]="请输入用户名";
}
if(!empty($_POST['password'])){
if(preg_match('/^\w{4,20}$/',$_POST['password'])){
$password=$_POST['password'];
}else{
$error[]="请填写正确的密码格式";
}
}else{
$error[]="请输入密码";
}
当我们设定密码为555或者5500!的时候,我们都会注册成功
若使用正则表达式,我们可以这样处理
if($_SERVER['REQUEST_METHOD']=='POST'){
if(!empty($_POST['username'])){
$username=$_POST['username'];
}else{
$error[]="请输入用户名";
}
if(preg_match('/^\w{4,20}$/',$_POST['password'])){
$password=$_POST['password'];
}else{
$error[]="请输入密码";
}
当我们设定密码为555(个数不够)或者5500!的时候(包含了除字母数字下划线以外的符号),我们都不会注册成功
网友评论