0

我正在尝试比较从 HTML 中的密码表单中获得的两个字符串。

它们被存储在变量中$_POST。我将它们打印出来,它们看起来一样,但是下面的代码永远不会评估为真,只会评估为假。为什么会这样?

//Verify the passwords match
if( ($passwd != $pass_confirm) && ($new_email != $email_confirm) ){
    echo "Email and/or password do not match";
    return FALSE;
}

我很感激任何帮助。

4

2 回答 2

7

要让您的代码显示错误消息,电子邮件和密码都必须是错误的。

尝试使用||而不是&&,因此当其中一个错误时会显示错误。

于 2012-04-05T12:15:50.973 回答
1

如果您将它们打印出来并且它们看起来相同,那么您可能会遇到尾随换行符问题。也许您可以在比较之前尝试修剪字符串?执行var_dump可能有助于查明问题,因为它显示了字符串的长度。

另外,我建议进行以下检查(注意||和严格的比较运算符):

if ($passwd !== $pass_confirm || $new_email !== $email_confirm) {
    echo "Email and/or password do not match";
    return false;
}
于 2012-04-05T12:20:59.287 回答