Php 如果嵌套在中,如果不工作

Php 如果嵌套在中,如果不工作,php,Php,所以我将if语句嵌套在另一个语句中,以用于表单验证,不幸的是,它不起作用。假设我使用了一封无效的电子邮件,它只会转到一个空白页,告诉我它没有阅读。下面是我的代码 // Verification if (empty($name && $username && $email && $pass1 && $pass2)) { echo "Complete all fields"; // Password match if ($pass

所以我将if语句嵌套在另一个语句中,以用于表单验证,不幸的是,它不起作用。假设我使用了一封无效的电子邮件,它只会转到一个空白页,告诉我它没有阅读。下面是我的代码

// Verification

if (empty($name && $username && $email && $pass1 && $pass2))
{
echo "Complete all fields";

// Password match

if ($pass1 <> $pass2)
    {
    echo $passmatch = "Passwords don't match";

    // Email validation

    if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
        {
        echo $emailvalid = "Enter a  valid email";

        // Password length

        if (strlen($pass1) <= 6)
            {
            echo $passlength = "Password must be at least 6 characters long";

            // Password numbers

            if (!preg_match("#[0-9]+#", $pass1))
                {
                echo $passnum = "Password must include at least one number!";

                // Password letters

                if (!preg_match("#[a-zA-Z]+#", $pass1))
                    {
                    echo $passletter = "Password must include at least one letter!";
                    }
                }
            }
        }
    }
}
//验证
if(空($name&&$username&&$email&&$pass1&&$pass2))
{
回显“完成所有字段”;
//密码匹配
如果($pass1$pass2)
{
echo$passmatch=“密码不匹配”;
//电子邮件验证
如果(!preg\u match(“/([\w\-]+\@[\w\-]+\.[\w\-]+)/”,$email))
{
echo$emailvalid=“输入有效电子邮件”;
//密码长度

如果(strlen($pass1)这不会像您想象的那样工作:

empty($name && $username && $email && $pass1 && $pass2)
您需要在每一个上使用empty

还有一些其他项目不需要嵌套的if for。这个怎么样

// Verification

if (empty($name) || empty($username) || empty($email) || empty($pass1) || empty($pass2))
{
echo "Complete all fields";
// you can stop it here instead of putting the curly brace ALL the way at the bottom :)
return;
}

// Password match
if ($pass1 <> $pass2)
{
    echo $passmatch = "Passwords don't match";
}

// Email validation
if (!filter_var($email, FILTER_VALIDATE_EMAIL))
{
echo $emailvalid = "Enter a  valid email";
}

// Password length
if (strlen($pass1) <= 6)
{
    echo $passlength = "Password must be at least 6 characters long";
}

// Password numbers
if (!preg_match("#[0-9]+#", $pass1))
{
    echo $passnum = "Password must include at least one number!";
}

// Password letters
if (!preg_match("#[a-zA-Z]+#", $pass1))
{
    echo $passletter = "Password must include at least one letter!";
}
//验证
if(empty($name)| | empty($username)| | empty($email)| | empty($pass1)| | empty($pass2))
{
回显“完成所有字段”;
//您可以在此处停止,而不是将大括号一直放在底部:)
返回;
}
//密码匹配
如果($pass1$pass2)
{
echo$passmatch=“密码不匹配”;
}
//电子邮件验证
如果(!filter_var($email,filter_VALIDATE_email))
{
echo$emailvalid=“输入有效电子邮件”;
}
//密码长度

如果(strlen($pass1)缩进你的代码对你有很大帮助。现在应该更好了?@h2ooooo这是不可能弄清楚的,我们需要知道代码的其余部分才能弄清楚它为什么不起作用。因为我不知道在“echo”之后会发生什么。你已经把大括号都收起来了。如果(函数){code}
提交表单后会显示消息…@Steven这样在基本级别上就安全了?@user302975好吧,此代码仍然不完整。您可能应该有一个
hasErrors
bool变量,并在继续之前检查它。如果出现任何错误,您不应该处理任何内容。此外,您需要确保o在继续之前,清除用户输入的数据。请参阅: