PHP 注册脚本在填写所有字段时说所有字段都是必需的

PHP Registration Script Saying All Fields Are Required when All are filled

以下脚本无法正常运行。当我在我的网站上访问它并输入所有字段时,它仍然显示 'All fields are required'。我根据本网站上的脚本对其进行了一些修改: http://www.abell12.com/ 。您必须注册才能下载它,但是一旦注册,请单击“脚本”,然后单击 PHP,然后转到“登录和注册”并下载脚本。这是我的脚本版本:

<?php

if(isset($_POST['submit']))
{
    $name = mysql_real_escape_string($_POST['name']);
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);
    $password1 = mysql_real_escape_string($_POST['password1']);

    $enc_password = md5($password);

    if($name && $username && $password && $password1)
    {
        if(strlen($name)<30)
        {
            if(strlen($username)<10)
            {
                if(strlen($password)<30 || strlen($password)>6)
                {
                    if($password == $password1)
                    {
                        require "dbc.php";
                        $query = mysql_query("INSERT INTO users VALUES ('','$name','$username','$enc_password')");
                        echo "Registration Complete! <a href='loginpage.php'>Click here to login</a>";
                    }
                    else
                    {
                        echo "Passwords must match";
                    }
                }
                else
                {
                    echo "Your password must be between 6 and 30 characters";   
                }
            }
            else
            {
                echo "Your username is too long";   
            }
        }
        else
        {
            echo "Your name is too long";
        }
    }
    else
    { 
        echo "All fields are required"; 
    }
}

?>

<html>

    <form action="register.php" method="POST">
        Name: <input type="text" name="name" value="<?php if(isset($_POST['submit'])){echo "$name";} ?>"> Max Length:30<p>
        Username: <input type="text" name="username" value="<?php if(isset($_POST['submit'])){ echo "$username";} ?>"> Max Length:15<p>
        Password: <input type="password" name="password"> Max length:30<p>
        Re-Enter Password: <input type="password" name="password1"><p>
        <input type="submit" name="submit" value="Register">
    </form>

</html>

如果您需要更多信息,请随时问我。

此行有错误:

if($name && $username && $password && $password1)

您需要使用 empty:

if(empty($name) && empty($username) && empty($password) && empty($password1))

从字面意思看empty()表示变量为空。这是一个 BOOL 函数,这意味着它将 return true 为空时 false 为空时

提示:您不应使用 MySQL,因为它已被弃用,请改用 MySQLi。

你像这样使用优化代码。

下面使用

if($name!='' && $username!='' && $password!='' && $password1!='')