Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme bdd

Sujet résolu
    26 avril 2017 à 16:58:49

    Bonjour, je rencontre un probleme dans la bdd plus précisemet quand je veux m'inscrire il n'insere pas les données dans la table du coup je peux pas me connecter j'ai essayé de trouver l'erreur dans le code d'inscription mais je trouve pas

    voici le code :

    <?php
    $bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
    
    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 membre WHERE mail = ?");
                   $reqmail->execute(array($mail));
                   $mailexist = $reqmail->rowCount();
                   
                   if($mailexist == 0) {
                      
                      if($mdp == $mdp2) {
                         
                         
                         $insertmbr = $bdd->prepare("INSERT INTO membre(pseudo, mail, motdepasse) VALUES(?, ?, ?)");
                         
                         $insertmbr->execute(array($pseudo, $mail, $mdp));
                         
                         $erreur = "Votre compte a bien été créé ! <a href=\"index.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 !";
       }
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    	<title>Inscription</title>
    	<link href="https://fonts.googleapis.com/css?family=PT+Sans+Narrow" rel="stylesheet">
    	<link rel="stylesheet" type="text/css" href="stylepage.css">
    	<meta charset="utf-8">
    </head>
    <body>
    	<div id="container-page-inscription">
    	<img src="https://media.giphy.com/media/26MiPHyb4Ynvy/giphy.gif" width="200" height="200">
    			 <div align="center" style="margin-top: -260px;">
             <h2 style="font-family: 'PT Sans Narrow', sans-serif;margin-top: 55px;">Inscription</h2>
             <br /><br />
             <p style="margin-top: -35px;margin-left: 130px;font-weight: bold;font-family: 'PT Sans Narrow', sans-serif;color: red;">Vous n'etes pas obligé de mettre un vrai email</p>
             <form method="POST" action="" class="form_demo" style="margin-top: -5px;">
                <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; } ?>" class="inputbasic" />
                      </td>
                   </tr>
    
                   </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; } ?>" class="inputbasic" />
                      </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; } ?>"  class="inputbasic" />
                      </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"  class="inputbasic" />
                      </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" class="inputbasic" />
                      </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>
          <a href="index.php" style="padding: 0px 20px;font-family: 'PT Sans Narrow', sans-serif;color: blue;position: absolute;margin-top: -25px;">Retour a l'acceuil</a>
    </body>
    </html>



    • Partager sur Facebook
    • Partager sur Twitter
    J'aime créer , mais en informatique
      26 avril 2017 à 17:04:13

      Est-ce que il y a une de tes messages d'erreur qui s'affiche sur ton site ou il t'affiche "votre compte à bien été créé" ? ou rien ?
      • Partager sur Facebook
      • Partager sur Twitter
      La seul chance qu'on a de gagner la guerre, c'est qu'en face ils soient aussi cons qu'ici !
        26 avril 2017 à 17:49:01

        oui il affiche "votre compte a bien a été crée"
        • Partager sur Facebook
        • Partager sur Twitter
        J'aime créer , mais en informatique
          27 avril 2017 à 10:24:40

          Ton code ne me semble pas vraiment contenir d'erreur ... assez étrange :/

          Tu peux essayer un 

          var_dump($insertmbr->execute(array($pseudo, $mail, $mdp)));


          au moment de ton insertion pour savoir si tes données on été inscrite ou non ? (A mon avis, sans grande surprise, il te retournera false).

          Aussi, par convention personnelle, je préfère utiliser les requêtes d'insert sous la forme :

          $insertmbr = $bdd->prepare("INSERT INTO membre SET pseudo = :pseudo, mail = :mail, motdepasse = :motdepasse");
          $insertmbr->execute(array("pseudo" => $pseudo, "mail" => $mail, "motdepasse" => $mdp));

          Après, cela reste personnel, mais tu peux essayer, je trouve ça plus visuel dans le sens où tu as chaque variable à côté de chaque marqueur. alors d'avec le "VALUES", si tu as beaucoup de variables, tu devras être sûr d'avoir le bon nombre de variables avec les noms correctes, bref, galère.

          -
          Edité par Etruiaz 27 avril 2017 à 10:25:00

          • Partager sur Facebook
          • Partager sur Twitter
          La seul chance qu'on a de gagner la guerre, c'est qu'en face ils soient aussi cons qu'ici !
            27 avril 2017 à 12:39:36

            merci je vais essayer ça
            • Partager sur Facebook
            • Partager sur Twitter
            J'aime créer , mais en informatique
              27 avril 2017 à 13:12:22

              Salutations,

              Regarde comment activer les erreurs PDO...

              • Partager sur Facebook
              • Partager sur Twitter
              Désolé, je ne réponds pas aux questions techniques posées par MP...
                27 avril 2017 à 19:11:41

                Pas besoin il est bien connecté a la bdd le probleme c'est que la requete SQL pour inserer des données ne fonctionne pas
                • Partager sur Facebook
                • Partager sur Twitter
                J'aime créer , mais en informatique
                  27 avril 2017 à 19:20:40

                  karim603 a écrit:

                  Pas besoin il est bien connecté a la bdd le probleme c'est que la requete SQL pour inserer des données ne fonctionne pas


                  Ce n'est pas pour rien si on te dit d'activer les erreurs pdo parce que pdo est muet par défaut donc si tu as une erreur au niveau de ta requete elle s'affichera
                  • Partager sur Facebook
                  • Partager sur Twitter
                  "Il est hélas devenu évident aujourd’hui que notre technologie a dépassé notre humanité"  A.E.
                    28 avril 2017 à 18:41:35

                    Etruiaz dit que le code semble bon mais je vais essayer cette petit ligne de code

                    • Partager sur Facebook
                    • Partager sur Twitter
                    J'aime créer , mais en informatique
                      28 avril 2017 à 19:05:36

                      Bonsoir, a tout hasard n'aurais tu pas oublié de mettre le champ id en auto_increment ?

                      André

                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 avril 2017 à 20:36:24

                        Oui, la syntaxe de ton insert semble correct... Active les erreurs, et dis nous, je serais pas étonné d'une faute de frape dans un nom de champ... Ou une erreur à la connexion, même si tu es sûr de toi...
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Désolé, je ne réponds pas aux questions techniques posées par MP...
                          2 mai 2017 à 18:41:13

                          c'est bon j'a reglé le probleme c'était une solution assez bizarre j'ai changé de table et de bd j'en n'ai crée un nouveau et ca a marché merci pour vos reponses
                          • Partager sur Facebook
                          • Partager sur Twitter
                          J'aime créer , mais en informatique

                          Probleme 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