2012-04-05 2 views
0

나는 HTML의 암호 양식에서 얻은 두 개의 문자열을 비교하려고합니다.PHP에서 문자열 비교

변수는 $_POST에 저장됩니다. 나는 그들을 인쇄하고 그들은 똑같이 보입니다, 그러나 아래의 코드는 결코 true로 평가되지 않을 것입니다. 왜 그런 일이 일어날까요?

//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

코드에서 오류 메시지를 표시하려면 전자 메일과 암호가 모두 틀려야합니다.

&& 대신 ||을 사용해보세요. 그 중 하나가 잘못되었을 때 오류가 표시됩니다.

+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; 
}