为什么我的不是(!)意外?

这个问题在这里已经有了答案:

  • PHP解析/语法错误; 以及如何解决它们? 13个答案

  • 以下几行:

     if(strlen($username) !<13){
         if(strlen($password) !<17){
    

    无效。 他们应该使用> =。 例如

     if(strlen($username) >= 13){
         if(strlen($password) >= 17){
    

    即使那样,我很确定你想写

     if(strlen($username) <= 13){
         if(strlen($password) <= 17){
    

    因为您的错误消息说明了您的用户名和密码的规则!

    我不确定我见过任何C衍生语言使用!<和!>

    附加:您还缺少电子邮件长度的上限检查(这里有一个维基百科页面)。

    你应该考虑编写一个验证器函数,分解那些非常难以维护的嵌套ifs。

    作为10的先发者:

       if($password != $confirmpass){
            echo ("Your passwords do not match");
        return false;
       }
    
       // what about weird characters?
       if (empty($username) || strlen($username) < 3 || strlen($username) > 13) {
            echo "Your username must be between 3 and 13 characters.";
        return false;
       }
    
    
       // what about weird characters?
       if (empty($password) || strlen($password) < 3 || strlen($password) > 17) {
            echo "Your password must be between 3 and 17 characters.";
        return false;
       }
    
    
       // you'll want some kind of regex to validate that the email is well formed
       if (empty($email) || strlen($email) < 3 || strlen($email) > 254) {
            echo "Your email must be between 3 and 254 characters.";
        return false;
       }
    
       $sql ="INSERT INTO users(user,pass,email) VALUES('".$username."','".md5($password)."','".$email."')";
       mysql_query($sql);
       header('Location: Login.php');
    

    您的语法不正确,您试图否定比较运算符,但这不是PHP中的语法。 的唯一有效的形式><是:

    >=<=

    链接地址: http://www.djcxy.com/p/69875.html

    上一篇: Why is my not(!) unexpected?

    下一篇: 500 Error caused by !="" check