为什么不满足条件 还是进入if 输出了用户名格式错误QAQ
进入格式检查 个个变量的值
可是strlen($username)=9
result1=1
还是会跑进if里面
输出用户名格式错误
整段代码里只有这一段“用户名格式错误”
[/img]
<br /> <?php<br /> $posts=$_POST;<br /> foreach($posts as $key => $value){<br /> if(empty($value))<br /> exit('非法访问!');<br /> }<br /> foreach ($posts as $key => $value) {<br /> $posts[$key] = trim($value);<br /> }<br /> require ('dbconfig.php');<br /> //注册<br /> function register($username,$password,$email){<br /> $query = "insert userdata values('". $username ."','". $password ."','". $email. "')";<br /> $result=mysql_query($query);<br /> if(!$result){<br /> exit('注册失败!papap');<br /> //die('注册失败'. mysql_error());<br /> }<br /> else{<br /> echo "注册成功!";<br /> }<br /> }<br /> //检查用户名,密码,邮箱格式<br /> function verifyFormat($username,$password,$email){<br /> $result1=preg_match("/^[\x{4e00}-\x{9fa5}]+$/u", $username);<br /> if(strlen($username)<1 || strlen($username)>16 || result1==0){<br /> echo "用户名格式错误!";<br /> return false;<br /> //die("用户名格式错误!");<br /> }<br /> <br /> $result2=preg_match("/^\w+$/u", $password);<br /> if(strlen($password)<6 || strlen($password)>17 || result2==0){<br /> echo "密码格式错误!";<br /> return false;<br /> //die("密码格式错误!");<br /> }<br /> <br /> $result3=preg_match("/^[a-zA-Z\d]+@[a-zA-Z\d]+\.[com|cn|com.cn|net]+$/u", $email);<br /> if(result3==0){<br /> echo "邮箱格式错误!";<br /> return false;<br /> //die("邮箱格式错误!");<br /> }<br /> return true;<br /> }<br /> $flag=verifyFormat($posts['username'],$posts['password'], $posts['email']);<br /> if($flag)<br /> register($posts['username'],$posts['password'], $posts['email']);<br /> else<br /> die("注册失败!!..");<br /> ?><br />