l'espace membre problème inscription

Ce topic a été résolu
niluca

niluca Le 20 avril 2016 à 15:42 (Édité le 25 janvier 2019 à 17:50)

bonjour , J'ai  suivis le tuto de PrimFX , pour crée un espace membre . mon  problème c'est que mon formulaire quand je lui rentre des information dans pseudo et que je lui met une lettre normalement il devrais me faire une erreur et pareil  pour le mot  passe  donc j'ai fait un copier coller du code que il donnait et sa fait la même chose .

et quand je fait valider il dit bien " Votre compte a bien été enregistré ! " alors que j'ai rien dans ma base de donné . 
Florian

Florian Le 20 avril 2016 à 18:06

Avec des screens de la base de donnée ainsi que le code on pourra t'aider mais sans ça va être dur
niluca

niluca Le 21 avril 2016 à 08:58



et voici le code que j'ai marquer :
<?php
$bdd = new PDO('mysql:host=localhost;dbname=my_monuniver','monuniver', '');
if(isset($_POST['forminscription'])) {
   $pseudo = htmlspecialchars($_POST['pseudo']);
   $mail = htmlspecialchars($_POST['mail']);
   $mail2 = htmlspecialchars($_POST['mail2']);
   $mdp = sha1($_POST['mdp']);
   $mdp2 = sha1($_POST['mdp2']);
   if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])) {
      $pseudolength = strlen($pseudo);
      if($pseudolength <= 255) {
         if($mail == $mail2) {
            if(filter_var($mail, FILTER_VALIDATE_EMAIL)) {
               $reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
               $reqmail->execute(array($mail));
               $mailexist = $reqmail->rowCount();
               if($mailexist == 0) {
                  if($mdp == $mdp2) {
                     $insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?, ?, ?)");
                     $insertmbr->execute(array($pseudo, $mail, $mdp));
                     $erreur = "Votre compte a bien été créé ! <a href=\"connexion.php\">Me connecter</a>";
                  } else {
                     $erreur = "Vos mots de passes ne correspondent pas !";
                  }
               } else {
                  $erreur = "Adresse mail déjà utilisée !";
               }
            } else {
               $erreur = "Votre adresse mail n'est pas valide !";
            }
         } else {
            $erreur = "Vos adresses mail ne correspondent pas !";
         }
      } else {
         $erreur = "Votre pseudo ne doit pas dépasser 255 caractères !";
      }
   } else {
      $erreur = "Tous les champs doivent être complétés !";
   }
}
?>
<html>
   <head>
      <title>inscription</title>
      <meta charset="utf-8">
   </head>
   <body>
      <div align="center">
         <h2>Inscription</h2>
         <br /><br />
         <form method="POST" action="">
            <table>
               <tr>
                  <td align="right">
                     <label for="pseudo">Pseudo :</label>
                  </td>
                  <td>
                     <input type="text" placeholder="Votre pseudo" id="pseudo" name="pseudo" value="<?php if(isset($pseudo)) { echo $pseudo; } ?>" />
                  </td>
               </tr>
               <tr>
                  <td align="right">
                     <label for="mail">Mail :</label>
                  </td>
                  <td>
                     <input type="email" placeholder="Votre mail" id="mail" name="mail" value="<?php if(isset($mail)) { echo $mail; } ?>" />
                  </td>
               </tr>
               <tr>
                  <td align="right">
                     <label for="mail2">Confirmation du mail :</label>
                  </td>
                  <td>
                     <input type="email" placeholder="Confirmez votre mail" id="mail2" name="mail2" value="<?php if(isset($mail2)) { echo $mail2; } ?>" />
                  </td>
               </tr>
               <tr>
                  <td align="right">
                     <label for="mdp">Mot de passe :</label>
                  </td>
                  <td>
                     <input type="password" placeholder="Votre mot de passe" id="mdp" name="mdp" />
                  </td>
               </tr>
               <tr>
                  <td align="right">
                     <label for="mdp2">Confirmation du mot de passe :</label>
                  </td>
                  <td>
                     <input type="password" placeholder="Confirmez votre mdp" id="mdp2" name="mdp2" />
                  </td>
               </tr>
               <tr>
                  <td></td>
                  <td align="center">
                     <br />
                     <input type="submit" name="forminscription" value="Je m'inscris" />
                  </td>
               </tr>
            </table>
         </form>
         <?php
         if(isset($erreur)) {
            echo '<font color="red">'.$erreur."</font>";
         }
         ?>
      </div>
   </body>
</html>

Clouder

Clouder Le 21 avril 2016 à 11:35

Pourquoi dans ta requête tu met "Insert into membres" alors que le nom de ta table est "espace_membre" ?

Corrige ça et dit moi si c'est ok. 😀
niluca

niluca Le 21 avril 2016 à 12:12

sa a rien changer , j'ai rien dans ma base de donné .
merci pour  votre aide 
Clouder

Clouder Le 21 avril 2016 à 12:15 (Édité le 21 avril 2016 à 12:17)

Tu obtiens un message d'erreur ou rien ? 
Essaie de faire un "print_r" après ta requête pour voir ce qu'il devrait enregistrer.

tu fais un "print_r($insertmbr); exit;"
niluca

niluca Le 21 avril 2016 à 12:21

il me met "Adresse mail déjà utilisée ! " après avoir mis  "print_r($insertmbr); exit;"
Clouder

Clouder Le 21 avril 2016 à 12:23

C'est que ton adresse existe déjà dans la base de données ? 
niluca

niluca Le 21 avril 2016 à 12:25

c'est bon il apparait dans la base de donné , mais j'ai toujours mon  problème avec le pseudo et le mot de passe normalement on peut pas mettre un caractère  
Clouder

Clouder Le 21 avril 2016 à 12:29

Tu peux mieux expliquer ton problème ? Car je ne vois pas ce que tu veux dire avec ton pseudo et mdp.
niluca

niluca Le 21 avril 2016 à 12:31

par exemple je met "v " dans pseudo et "123" dans mot de passe normalement il devrait me dire que c'est trop petit 
Dwardower

Dwardower Le 21 avril 2016 à 12:34

et la tu peux ?
niluca

niluca Le 21 avril 2016 à 12:36

oui , c'est sa 
Dwardower

Dwardower Le 21 avril 2016 à 12:37 (Édité le 21 avril 2016 à 12:38)

Si tu veux imposer une limite, tu remplace ça :
if($pseudolength <= 255)
par ça :
if($pseudolength <= 255 AND $pseudolengh > 12)
12 est le nombre de caractères minimum à avoir
niluca

niluca Le 21 avril 2016 à 12:55

merci ,sa fonctionne maintenant 
Dwardower

Dwardower Le 21 avril 2016 à 13:25

Ravis d'avoir aidé, bonne continuation 😉
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte