Problème avec un "IF"

Résolu
patricia@84 Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   -  
patricia@84 Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Ce n'est pas la première fois, loin de là, que j'utilise un "if", mais c'est la première fois que j'ai ce résultat...

J'ai, d'une part, une variable "$mail" provenant d'un formulaire et, d'autre part, une variable "$mel" récupérée de ma bdd...
je veux que, dans le cas où elles ne soient pas identiques, le visiteur du site en soit informé pour revenir ensuite au formulaire et que, si elles sont identiques, il reçoive un message sur sa boite mail.
Je teste mon script : mes deux variables sont bien identiques, j'ai vérifié.
J'ai écrit ceci pour la comparaison des données :
if ($mel == '$mail') { 
echo '<p>Votre demande est acceptée, un message va vous être envoyé. </p>';
}
else
{
echo '<p>L\'adresse e-mail que vous venez de nous communiquer n\'est pas celle figurant dans notre base de données.</p>';
}
J'obtiens pour résultat : "L'adresse e-mail que vous venez de nous communiquer n'est pas celle figurant dans notre base de données." ; c'est donc la réponse que j'aurais dû avoir si les variables n'étaient pas identiques... ce qui n'est pas le cas !
Alors j'ai essayé, en modifiant ma première ligne et j'ai fait ceci :
if ($mel != '$mail') { 
echo '<p>L\'adresse e-mail que vous venez de nous communiquer n\'est pas celle figurant dans notre base de données.</p>';
}
else
{
echo '<p>Votre demande est acceptée, un message va vous être envoyé. </p>';
}
Et là, j'ai eu, pour réponse : "L'adresse e-mail que vous venez de nous communiquer n'est pas celle figurant dans notre base de données." ; ce n'est pas la bonne réponse ; mes variables étant identiques, j'aurais dû avoir : "Votre demande est acceptée, un message va vous être envoyé."

Où me trompe-je ?

Merci de votre aide...

2 réponses

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Pourquoi faire :
if ($mel == '$mail')

Qui serait plus juste en
if ($mel == "$mail")

(Et oui, les simple quotes ne font pas de substitution)
Alors que :
if ($mel == $mail)

fait la même chose et charge moins PHP ?
0
patricia@84 Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   9
 
Bonjour et merci pour cette réponse...
Seulement, j'avais essayé avec des simples quotes, des doubles quotes ou pas de quotes du tout... et le résultat est toujours le même, c'est-à-dire : faux.
0
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Affiches le contenu de tes variables pour voir :
printf('"%s" / "%s"',$mel,$mail)
0
patricia@84 Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   9
 
Je l'avais déjà fait...
J'ai trouvé... c'était un problème dans une requête située plus loin dans le script qui perturbait la bonne exécution de mon if. Problème résolu.
0