Besoin d'aide

Ce topic a été résolu
Psman

Psman Le 14 août 2016 à 19:14 (Édité le 25 janvier 2019 à 17:52)

Bonjour , voila , je n'arrive pas a trouvé mon erreur , elle est peut être sous mon nez mais je n'y arrive pas. 
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

TheFlameflo Le 14 août 2016 à 20:27

Salut !

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

Psman Le 14 août 2016 à 20:38

Tout d'abord merci pour ta réponse. Et non , je cherche a savoir si l'email est dans la base de donné , et , si il y est , il n'est pas disponible. Donc est invalide.

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

TheFlameflo Le 14 août 2016 à 21:38

Salut !

Alors, pourrais-tu montrer un screenshot de ta table, pour voir ? 😀
Psman

Psman Le 15 août 2016 à 10:08

Voila
TheOldNoob

TheOldNoob Le 16 août 2016 à 02:44

Salut l'ami,
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.

Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte