2010-07-14 5 views
0

cela peut sembler une question stupide, mais cela me bute néanmoins. Je suis sûr que la réponse est quelque chose de petit. Je pense que c'est juste une de ces situations où je regarde le code depuis trop longtemps. J'essaie de comparer deux variables PHP pour voir si elles sont identiques. Comme vous pouvez le voir ci-dessous, je compare $verification_answer avec strrev(date("Ymd")) qui est la date d'aujourd'hui, inversée. Donc aujourd'hui, $verification_answer serait 31700102. Chaque fois que j'essaie de faire la comparaison, cependant, l'instruction if s'exécute (comme une non-correspondance).Problème lors de la comparaison de deux variables PHP

$verification_answer = strrev(date("Ymd")); 

if($verification != $verification_answer){ 
    $failed .= "<h2>Attention:</h2><p>The verification code is incorrect. Please try again.</p>"; 
} 

Quelqu'un peut-il voir le problème? Merci!


MISE À JOUR: $verification est de l'entrée utilisateur HTML:

$verification = mysql_escape_string($_POST['verification']); 
+0

Veuillez poster ce que $ vérification est. –

+0

quelle est la valeur de $ vérification? D'où est ce que ça vient? – jigfox

+0

$ La vérification provient d'une entrée utilisateur HTML. Je me suis assuré (par echo()) que, après la soumission du formulaire, $ verification et $ verification_answer affichent tous les mêmes valeurs – littleK

Répondre

6

L'instruction if ne présente aucun problème. Afficher les deux valeurs et vous devriez voir une sorte de différence:

var_dump($verification); 
var_dump($verification_answer); 

Peut-être $verification ne contient pas ce que vous pensez qu'il fait, ou vous avez mal orthographié plus tôt et affecté à une autre variable, ou ...

3

Je comparais $ verification_answer avec strrev (date ("Ymd"))

Si c'est en fait ce que vous aviez l'intention de faire, je pense que vous avez foiré le nom de la variable dans la première ligne; il devrait être:

$verification = strrev(date("Ymd")); 

Si vous avez accidentellement réenregistrés la valeur de $verification_answer et utilisé $verification dans une comparaison quand il est indéfini, la comparaison sera toujours faux. PHP émet un avertissement, mais si vous les avez désactivés, vous ne le verrez pas

+0

Woops, c'était juste une faute de frappe en tapant le message. – littleK

0

Je dois avoir mal orthographié la vérification quelque part ... J'ai copié et collé 'vérification' sur chaque nom de variable existant et cela a résolu le problème. Merci!

+1

Si vous activez les avertissements dans 'php.ini' pendant que vous développez, cela aidera à éviter ce genre de chose –

Questions connexes