Besoin d'aide
- Accueil
- Forum
- Programmation
- PHP
- Besoin d'aide
Psman Le 14 août 2016 à 19:14 (Édité le 25 janvier 2019 à 17:52)
Le problème : Il m'affiche a chaque fois : "Email invalide". Je ne comprend plus :/
Tout est bon dans la bdd.
if(isset($_POST['register']))
{
$email = htmlspecialchars($_POST['email']);
if(!empty($email))
{
$reqmail = $bdd->prepare("SELECT * FROM membres WHERE email = ?");
$reqmail->execute(array($email));
$mailexist = $reqmail->rowCount();
if($mailexist == 1)
{
echo "Mail valide";
}
else
{
echo "Mail invalide";
}
}
}
Merci d'avance 😋
TheFlameflo Le 14 août 2016 à 20:27 (Édité le 1 janvier 1970 à 01:00)
Juste pour être certain, tu cherches à afficher mail valide quand il n'existe pas dans la bdd et mail invalide quand il existe ?
Donc, il y a une erreur.
Quand tu testes mailexist, tu testes s'il y en a 1, donc, l'email est invalide. Tu devrais afficher email invalide et non valide.
Sinon, tu peux toujours essayer de changer le 1 de la condition pour un 0, pour tester si c'est valide.
Si tu ne souhaites pas continuer la "chaîne" de conditions, la dernière solution est la meilleure !
J'espère avoir pu t'aider ! 😀
Psman Le 14 août 2016 à 20:38 (Édité le 1 janvier 1970 à 01:00)
Et si on change 1 par 0 , le problème reste le même , cependant le "Mail invalide" deviens "Mail valide" même si il est dans la bdd.
TheFlameflo Le 14 août 2016 à 21:38 (Édité le 1 janvier 1970 à 01:00)
Alors, pourrais-tu montrer un screenshot de ta table, pour voir ? 😀
TheOldNoob Le 16 août 2016 à 02:44 (Édité le 1 janvier 1970 à 01:00)
The Flameflo a raison, ton comptage d'erreur est mauvais !
En plus de ça, ta vérification d'email n'est pas bonne a la place du htmlspecialchars, je t'invite a te renseigné sur le FILTER_VALIDATE_EMAIL
Ensuite, dans ta requete tu lui demande de fouiller dans tout les champs de ta table membres, tu peu mettre email a la place du * pour qu'il ne cherche que dans le champs email
Pour finir, je pense que ta variable mailexist est totalement inutil, met directement le $reqmail->rowCount() dans ton if juste en dessous. Tu gagne l'écriture d'une variable.