2012-04-05 21 views
0

私はHTMLのパスワードフォームから取得する2つの文字列を比較しようとしています。PHPの文字列比較

これらは変数$_POSTから格納されています。私はそれらをプリントアウトして同じように見えますが、以下のコードは決して真ではなく、偽でしかありません。なぜそれが起こるのですか?

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

私は何か助けていただきありがとうございます。

+0

また、私は次のチェックを(||と厳格な比較演算子を注意してください)を示唆しています「真実」も同様です。それから、他の人がすでに答えたように、**や**の代わりに**や**を使用してください。 – martinstoeckli

答えて

7

エラーメッセージを表示するコードでは、電子メールとパスワードの両方が間違っている必要があります。

&&の代わりに||を使用してください。そのうちの1つが間違っているとエラーが表示されます。

+0

ありがとうございます。また、strcmpを使用するようにコードを修正しました。これは問題を解決するように見えました。 –

1

これらを印刷しても同じように見える場合は、改行文字に問題がある可能性があります。おそらくあなたが試すことができるtrimming比較の前に文字列? var_dumpを実行すると、文字列の長さが表示されるため、問題を特定するのに役立ちます。これは機能の一部(return文は、このことを示す)である場合には、返すことを忘れないでください

if ($passwd !== $pass_confirm || $new_email !== $email_confirm) { 
    echo "Email and/or password do not match"; 
    return false; 
}