Problème avec un "IF"

Résolu/Fermé
patricia@84 Messages postés 106 Date d'inscription vendredi 27 novembre 2015 Statut Membre Dernière intervention 24 septembre 2023 - 9 juil. 2016 à 16:58
patricia@84 Messages postés 106 Date d'inscription vendredi 27 novembre 2015 Statut Membre Dernière intervention 24 septembre 2023 - 10 juil. 2016 à 09:19
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 15214 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 16 avril 2025 363
9 juil. 2016 à 17:25
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 vendredi 27 novembre 2015 Statut Membre Dernière intervention 24 septembre 2023 9
9 juil. 2016 à 17:47
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 15214 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 16 avril 2025 363
9 juil. 2016 à 21:17
Affiches le contenu de tes variables pour voir :
printf('"%s" / "%s"',$mel,$mail)
0
patricia@84 Messages postés 106 Date d'inscription vendredi 27 novembre 2015 Statut Membre Dernière intervention 24 septembre 2023 9
10 juil. 2016 à 09:19
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