Page d'inscription

mikada

mikada Le 7 mai 2018 à 08:20 (Édité le 25 janvier 2019 à 17:54)

Bonjour,
Lorsque j’exécute le code, le champ mdp et statut s’effaceet j’obtiens « le message « tous les champs doivent être complètés »
J’ai apporté les modifications suivantes au code de base duforum :
J’ai changé l’ordre des champs, rajouté un champ statut, etmis une condition pour la longueur du mdp <5 >20
Ordre : Pseudo, mdp, mdp2, mail, mail2, statut,
Pouvez-vous m’aider à résoudre mon problème ?
Salutations.
 
<?php
/* Connexionau serveur : dans ce cas, en local */
$bdd = new PDO('mysql:host=localhost;dbname=espace_membre','root', '', [PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING]);
 
/* Si leformulaire est envoyé */
if(isset($_POST['forminscription']))
 {
   /* Récupération des variables issues duformulaire*/
   $pseudo = htmlspecialchars($_POST['pseudo']);
  $mdp = sha1($_POST['mdp']);
  $mdp2 = sha1($_POST['mdp2']);
   $mail = htmlspecialchars($_POST['mail']);
   $mail2 = htmlspecialchars($_POST['mail2']);
   $statut =htmlspecialchars($_POST['statut']);
   
   /* 1 Teste l'existence les données post envérifiant qu'elles existent*/
   if(!empty($_POST['pseudo']) AND !empty($_POST['mdp']) AND!empty($_POST['mdp2']) AND !empty($_POST['mail']) AND
!empty($_POST['mail2'])AND !empty($_POST['statut'])) 
  {
      /* 2 Teste si $pseudo est compris entre 5et 20 */ 
      if(strlen($pseudo) < 5 or strlen($pseudo) > 20) 
                 {
     /*requette préparée pour vérifier si lePSEUDO existe*/ 
      $reqpseudo = $bdd->prepare("SELECT * FROM membres WHERE pseudo =?");
     $reqpseudo->execute(array($pseudo));
                               
    /*Compte le nb de pseudo*/
      $pseudoexist = $reqpseudo->rowCount();
                 
     /* 3 nb = 0 on continue*/
     if($pseudoexist == 0) 
     {
         /* 4 Teste si les 2 mdp sont égaux*/ 
          if($mdp == $mdp2) 
         {
                                                                            
         /*requette préparée pour vérifier sile mdp existe*/ 
          $reqmdp = $bdd->prepare("SELECT * FROM membres WHERE motdepasse= ?");
          $reqmdp->execute(array($mdp));
                                
         /*Compte le nb de mdp*/
          $mdpexist = $reqmdp->rowCount();
                                
          /* 5 nb = 0 on continue*/
          if($mdpexist == 0) 
          {
                                                              
            /*Teste si les 2 mails sont égaux*/
            if($mail == $mail2) 
           {
                                               
           /* 6 Teste si l'adresse est valide*/
            if(filter_var($mail, FILTER_VALIDATE_EMAIL)) 
                                            {
                                                             
            /*requette préparée pour vérifiersi le mail existe*/ 
            $reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail =?");
            $reqmail->execute(array($mail));
                                            
           /*Compte le nb de mail*/
            $mailexist = $reqmail->rowCount();
                                            
            /* 7 nb = 0 on enregistre*/
            if($mailexist == 0) 
            {
                  
            /*Requette préparée*/ 
            $insertmbr = $bdd->prepare("INSERTINTO membres(pseudo, motdepasse, mail, statut) VALUES(?, ?, ?, ?)");
           $insertmbr->execute(array($pseudo, $mdp, $mail, $statut));
            $erreur = "Votre comptea bien été créé ! <ahref=\"connexion.php\">Me connecter</a>";
                                            
                 } 
               else
                {
                     /* 7 */ $erreur ="Vos mots de passes ne correspondent pas !";
                 }
                                                             
               } 
               else 
               {
                  /* 6 */ $erreur ="Adresse mail déjà utilisée !";
               }
             } 
             else 
            {
               /* 5 */ $erreur = "Votreadresse mail n'est pas valide !";
           }
           }
           else 
           {
            /* 4 */$erreur = "Vos adressesmail ne correspondent pas !";
           }
         }
         else 
                               {
        /* 3 */ $erreur = "Votre pseudoexiste déja !";
         }
        }
       else 
       {
         /* 2 */ $erreur = "Votre pseudodoit etre compris entre 5 et 20 !";
      }
   } 
   else 
   {
      /* 1 */ $erreur = "Tous les champsdoivent être complétés !";
   }
   }
}
?>


mikada

mikada Le 13 mai 2018 à 20:34

Bonsoir,

Personne pour m'aider ? C'est bien dommage.

Salutations
DarkSkyline

DarkSkyline Le 14 mai 2018 à 20:39 (Édité le 14 mai 2018 à 20:40)

Bonsoir, as-tu vérifié si tu reçois les données via $_POST['...']; ?

Je passe a expliquer pour tester cela après ce code-ci:
$pseudo = htmlspecialchars($_POST['pseudo']);
var_dump($pseudo);

Donc maintenant tu execute ton script et tu teste,
Si c'est à cause des POST que les variables son vide vérifie ton code html.

Si ce n'est pas ça répond que je vérifie ton code avec un peut plus de temps 😀
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte