Partage
  • Partager sur Facebook
  • Partager sur Twitter

Verifier si un mail existe déjà dans ma BDD

Côté inscription de mon site.

Sujet résolu
    24 février 2021 à 17:25:27

    Bonsoir, je rencontre un problème avec mon code je m'explique je développe actuellement mon espace membre est je viens d'arriver récemment sur le code PHP, j'ai suivi toutes la formations OpenClassroom en ce qui le concerne. Seulement voilà quand je veux dire qu'il existe déjà ce mail dans ma BDD, j'utilise ce code suivant : 
    // Vérification du mail
                if(empty($mail)){
                    $valid = false;
                    $er_mail = "Le mail ne peut pas être vide";
    
                    // Format du mail
                }elseif(!preg_match("/^[a-z0-9\-_.]+@[a-z]+\.[a-z]{2,3}$/i", $mail)){
                    $valid = false;
                    $er_mail = "Le mail n'est pas valide";
    
                }else{
                    // Mail disponible ou non
                    $req_mail = $DB->query("SELECT mail FROM utilisateur WHERE mail = ?",
                        array($mail));
    
                    $req_mail = $req_mail->fetch();
    
                    if ($req_mail['mail'] <> ""){
                        $valid = false;
                        $er_mail = "Ce mail existe déjà";
                    }
                }

    quand je lance mon programme l'erreur suivante s'affiche :

    Warning: Trying to access array offset on value of type bool in C:\xampp\htdocs\tests\DB\inscription.php on line 55

    Si vous pouvez m'aider, merci beaucoup par avance. (Ma ligne 55 pointe sur

    if ($req_mail['mail'] <> ""){)

    Eyiro.

    -
    Edité par NathanGaillard6 24 février 2021 à 17:27:20

    • Partager sur Facebook
    • Partager sur Twitter
      24 février 2021 à 17:32:51

      if (!$req_mail){ pas if ($req_mail['mail'] <> ""){

      Que renvoie PDOStatement::fetch quand il n'y a pas/plus de ligne ? FALSE ! Est-ce que tu trouves logique d'écrire FALSE['mail'] ?

      Ca aurait peut être été plus simple d'employer un SELECT COUNT.

      -
      Edité par julp 24 février 2021 à 17:34:19

      • Partager sur Facebook
      • Partager sur Twitter
        24 février 2021 à 17:38:15

        julp a écrit:

        if (!$req_mail){ pas if ($req_mail['mail'] <> ""){

        Que renvoie PDOStatement::fetch quand il n'y a pas/plus de ligne ? FALSE ! Est-ce que tu trouves logique d'écrire FALSE['mail'] ?

        Ca aurait peut être été plus simple d'employer un SELECT COUNT.

        -
        Edité par julp il y a 2 minutes


        Dieu pardi ! Mille merci !

        C'est surement une erreur stupide, mais j'ai pas trop le niveau encore merci beaucoup !

        • Partager sur Facebook
        • Partager sur Twitter

        Verifier si un mail existe déjà dans ma BDD

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown