我对此注册表单有疑问,我正在检查密码和用户名,这是我正在进行的过程吗?
PHP:
$username = mysql_real_escape_string($_POST['username']);
$password = md5(mysql_real_escape_string($_POST['pass']));
//check if username is valid
if (ereg("^[a-zA-Z0-9_\-]+$", $username)){
die(msg(0,"oOps, This username is not valid, only numbers, letters and underscores allowed"));
}
// check if password is more than 6
if(strlen($password) < 6){
die(msg(0,"oOps, The password has to be more than 6 characters, be tricky!"));
}
但是我正确输入了用户,密码,但它仍然显示错误,检查是错误的:))谢谢
答案 0 :(得分:2)
通过mysql_real_escape_string()传递后,检查$ username的有效性是没有意义的,因为该函数会转义某些字符,并且生成的“用户名”最终将包含“\”字符,因此总是会失败你的正则表达式。
(此外,您似乎正在检查用户名,并且如果有效则会死亡。)您确定代码是您编写的吗?)
同样,在通过md5()传递后检查$ password的长度没有任何意义。 md5()会将任何内容转换为32个字符的字符串,因此该条件将始终失败。
P.S。
//检查密码是否超过6
if(strlen($ password)&lt; 6){
如果您要过度评论代码,至少要确保评论准确无误! ; - )