注册表格在PHP检查顺序?

时间:2010-10-14 23:30:36

标签: php html regex

我对此注册表单有疑问,我正在检查密码和用户名,这是我正在进行的过程吗?

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!"));
    }

但是我正确输入了用户,密码,但它仍然显示错误,检查是错误的:))谢谢

1 个答案:

答案 0 :(得分:2)

通过mysql_real_escape_string()传递后,检查$ username的有效性是没有意义的,因为该函数会转义某些字符,并且生成的“用户名”最终将包含“\”字符,因此总是会失败你的正则表达式。

(此外,您似乎正在检查用户名,并且如果有效则会死亡。)您确定代码是您编写的吗?)

同样,在通过md5()传递后检查$ password的长度没有任何意义。 md5()会将任何内容转换为32个字符的字符串,因此该条件将始终失败。

P.S。

  

//检查密码是否超过6

     

if(strlen($ password)&lt; 6){

如果您要过度评论代码,至少要确保评论准确无误! ; - )

相关问题