Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: quiqou55, Xooit
Auteur Sujet: Problème d'enregistrement de membre dans ma BDD

Xooit

Messages: 12

Bonjour, voici la page php que que j'ai crée une suivant le auto de "PrimFX" le problème c'est que quand j'appuis sur inscrire rien ne se passe dans ma base de donnée je suis sur mamp, et je voudrai savoir si quelqu'un pourrai m'aidez a trouver mon problème svp .

cordialement :

<!DOCTYPE html>
<?php
error_reporting(E_ALL);
   $bdd = new PDO('mysql:host=localhost:8888;dbname=espace_menbre', 'root','root');      //connection a la base de donnée
      if (isset($_POST['forminscription'])) 
      $pseudo = htmlspecialchars($_POST['speudo']);
       $mail = htmlspecialchars($_POST['mail']);
       $mail2 = htmlspecialchars($_POST['mail2']);            //protection java
       $mdp = sha1($_POST['mdp']);
       $mdp2 = sha1($_POST['mdp2']);
{
   if (!empty($_POST['speudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2']))
    {
       
       $speudolength = strlen($pseudo);
       if ($speudolength <= 255)
        {
           
          if ($mail == $mail2)
           {
              if (filter_var($mail, FILTER_VALIDATE_EMAIL))
           {
             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é enregistré!";
                
             }
             else
             {
                $erreur = "le mot de passe ne conrespond pas!";
             }
             }
             else
             {
                $erreur = "Votre adresse email n'est pas valide!";
             }
          }
          else
          {
             $erreur = "l'adresse email ne conrespond pas!";
          }
       }
       else
       {
          $erreur = "Votre speudo est tro long";
       }
    }
    else
    {
       $erreur = "Tous les champs doivent être conpleter!";
    }
}
?>
<html>
   <meta charset="UTF-8">
   <link rel="stylesheet" type="text/css" href="style.css">
      <head>
         <?php
            include('title.php');
         ?>
      </head>
            <body>
               <div id="conteneur">
               <?php
                  include('titre.php');
                  ?>
                              
               <!--debut menu-->
                  <?php
                  include('menu.php');
                  ?>
            <!--fin menu-->
            <!--debut contenue-->
            <section id="contenu">
                  <article>
                     <h1>Inscription</h1>
                     <form method="post" action="">
                     <?php
                        if (isset($erreur)) 
                        {
                           echo '<font color="red">'.$erreur."</font>";
                        }
                        ?>
                        <fieldset style="margin-right: 20px;">
                           
                              <center>
                              <p id="coco">
                                 <label for="speudo">speudo: </label>
                                 
                              <input type="speudo" name="speudo"  placeholder="Ex: Votre speudo" value="<?php if (isset($speudo)){ echo $speudo;} ?>"/><br><br>
                                    
                                 <label for="mail">email: </label>
                              
                              <input type="email" name="mail"  placeholder="Votre Email" id="mail" value="<?php if (isset($mail)){ echo $mail;} ?>"/><br><br>
                           
                                 <label for="mail2">Confirmation du mail: </label>
                              
                              <input  align="justify" type="email" name="mail2"  placeholder="Confirmer votre email:" id="mail2" value="<?php if (isset($mail2)){ echo $mail2;} ?>" /><br><br>
                                 <label for="mdp">Mot de passe: </label>
                           
                              <input type="password" name="mdp"  placeholder="Votre mot de passe:" id="mdp" /><br><br>
                           
                                 <label for="mdp2">Confirmation du mot de passe: </label>
                              
                              <input type="password" name="mdp2"  placeholder="Confirmer votre mot de passe:" id="mdp2" /><br><br>
                              
                              
                                 
                                    <input type="submit" name="forminscription" value="m'inscrire"/><br>
                                    
                              
                              </center>
                              </strong>
                           
                        </fieldset>
                        </p>
                        
                  </article>
               </section>
               <!--fin contenue-->
               <!-- debut aside -->
               <?php>
               include('sidebar.php');
               ?>
            </body>
</html>
Publicité

quiqou55

Messages: 23

Salut !
Dans la connexion a la base de donné remplace le localhost:8888 par localhost, le port 8888 est utilisé uniquement par php et non MySql Sourire

TheFlameflo

Messages: 303

Idem. Pour la connexion à la BDD, juste besoin d'écrire localhost, sans rien d'autre.

Xooit

Messages: 12

sa a rien changer mes pourquoi rien ne s'inscrit dans ma bdd ? je comprend pas

quiqou55

Messages: 23

Après la connexion a la base de donnée ajoute cette ligne pour voir l'erreur : 
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Xooit

Messages: 12

sa me dit rien, me met une page blanche et au niveaux de la vdd toujours rien est-ce-que le problème peut venir de la vdd ou de phpmyadmin?

TheFlameflo

Messages: 303

Essaye de nous envoyer des screen de ta table, ta bdd et tout ça.
Peut-être que l'erreur est là. 
EDIT : Je ne sais pas, mais ma connexion à la bdd, le nom c'est root et pas de mot de passe, ça vient peut-être de là ?

julienb

Messages: 34

Salut, 2 petites suggestions afin de repérer d'eventuelles erreurs:

remplacer la création de l'instance PDO au tout début par:
try{ 
   $bdd = new PDO('mysql:host=localhost;dbname=espace_menbre', 'root','root'); 
} catch (PDOException $e) {
   echo "Erreur de connexion à la base de données<br/>";
   echo $e->getMessage();
}

et à la fin remplacer 
$insertmbr = $bdd->prepare("INSERT INTO membre (pseudo, mail, motdepasse) VALUES(?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp));
$erreur = "Votre compte a bien été enregistré!";
par
try{
   $insertmbr = $bdd->prepare("INSERT INTO membre (pseudo, mail, motdepasse) VALUES(?, ?, ?)");
   $insertmbr->execute(array($pseudo, $mail, $mdp));
   $erreur = "Votre compte a bien été enregistré!";
}catch(PDOException $e){
   echo "Erreur d'insertion dans la base de données <br/>";
   echo $e->getMessage();
}

julienb

Messages: 34

(Soucis avec le message d'avant que je n'arrive pas à enregistrer avec la fin..)

De plus, tu as un problème de { et } au début de ton code. Le bloc suivant:
   if (isset($_POST['forminscription'])) 
      $pseudo = htmlspecialchars($_POST['speudo']);
       $mail = htmlspecialchars($_POST['mail']);
       $mail2 = htmlspecialchars($_POST['mail2']);//protection java
       $mdp = sha1($_POST['mdp']);
       $mdp2 = sha1($_POST['mdp2']);
{
   if (!empty($_POST['speudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2']))
devrait plutôt ressembler à:
  if (isset($_POST['forminscription'])){
    $pseudo = htmlspecialchars($_POST['speudo']);
    $mail = htmlspecialchars($_POST['mail']);
    $mail2 = htmlspecialchars($_POST['mail2']);/protection java
    $mdp = sha1($_POST['mdp']);
    $mdp2 = sha1($_POST['mdp2']);
      if (!empty($_POST['speudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])){

Ephtos

Messages: 15

Salut Sourire donc j'ai regardé vite fais quelque truc me paraissent bizarre, tu as suivis le tuto de PrimFX donc la connexion à la base de donnée est elle bonne ? Par exemple j'ai remplacé par 127.0.0.1 (pareil que localhost juste une habitude), ensuite ta base de donnée c'est espace_meNbre ou espace_meMbre ? ensuite quelque erreur dans tes test, comme le montre julien.b, j'ai pu lire aussi que mamp utilisait localhost:8889 , si jamais le 127.0.0.1 te donnait une erreur.
<!DOCTYPE html>
<?php
error_reporting(E_ALL);
   $bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_menbre', 'root','root'); //espace_meNbre ou espace_membre ?
      if (isset($_POST['forminscription'])){
         $pseudo = htmlspecialchars($_POST['speudo']);
         $mail = htmlspecialchars($_POST['mail']);
         $mail2 = htmlspecialchars($_POST['mail2']);            //protection java
         $mdp = sha1($_POST['mdp']);
         $mdp2 = sha1($_POST['mdp2']);
        if (!empty($_POST['speudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])){
                 $speudolength = strlen($pseudo);
                 if ($speudolength <= 255){                     
                    if ($mail == $mail2){                     
                        if (filter_var($mail, FILTER_VALIDATE_EMAIL)){
                            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é enregistré!";
                            }
                            else
                            {
                               $erreur = "le mot de passe ne conrespond pas!";
                            }
                            }
                           else
                           {
                             $erreur = "Votre adresse email n'est pas valide!";
                           }
                          }
                    else
                    {
                       $erreur = "l'adresse email ne conrespond pas!";
                    }
                 }
                 else
                 {
                    $erreur = "Votre speudo est tro long";
                 }
              }
              else
              {
                 $erreur = "Tous les champs doivent être conpleter!";
              }
            }
         }
?>
<html>
   <meta charset="UTF-8">
   <link rel="stylesheet" type="text/css" href="style.css">
      <head>
         <?php
            include('title.php');
         ?>
      </head>
            <body>
               <div id="conteneur">
               <?php
                  include('titre.php');
                  ?>
                              
               <!--debut menu-->
                  <?php
                  include('menu.php');
                  ?>
            <!--fin menu-->
            <!--debut contenue-->
            <section id="contenu">
                  <article>
                     <h1>Inscription</h1>
                     <form method="post" action="">
                     <?php
                        if (isset($erreur)) 
                        {
                           echo '<font color="red">'.$erreur."</font>";
                        }
                        ?>
                        <fieldset style="margin-right: 20px;">
                           
                              <center>
                              <p id="coco">
                                 <label for="speudo">speudo: </label>
                                 
                              <input type="speudo" name="speudo"  placeholder="Ex: Votre speudo" value="<?php if (isset($speudo)){ echo $speudo;} ?>"/><br><br>
                                    
                                 <label for="mail">email: </label>
                              
                              <input type="email" name="mail"  placeholder="Votre Email" id="mail" value="<?php if (isset($mail)){ echo $mail;} ?>"/><br><br>
                           
                                 <label for="mail2">Confirmation du mail: </label>
                              
                              <input  align="justify" type="email" name="mail2"  placeholder="Confirmer votre email:" id="mail2" value="<?php if (isset($mail2)){ echo $mail2;} ?>" /><br><br>
                                 <label for="mdp">Mot de passe: </label>
                           
                              <input type="password" name="mdp"  placeholder="Votre mot de passe:" id="mdp" /><br><br>
                           
                                 <label for="mdp2">Confirmation du mot de passe: </label>
                              
                              <input type="password" name="mdp2"  placeholder="Confirmer votre mot de passe:" id="mdp2" /><br><br>
                              
                              
                                 
                                    <input type="submit" name="forminscription" value="m'inscrire"/><br>
                                    
                              
                              </center>
                              </strong>
                           
                        </fieldset>
                        </p>
                        
                  </article>
               </section>
               <!--fin contenue-->
               <!-- debut aside -->
               <?php>
               include('sidebar.php');
               ?>
            </body>
</html>


Xooit

Messages: 12

Bonjour j'ai remplacer mon code par celui donnée par (Ephtos) et sa me fait une page blanche. ?????

Xooit

Messages: 12

et j'ai corrigé  les "speudo" par "pseudo

Xooit

Messages: 12

mais toujours rien j'ai beau essayer tel ou tel manipe mais rien fonctionne c'est bizarre

Ephtos

Messages: 15

<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=membre', 'root','');
      if (isset($_POST['forminscription'])){
         $pseudo = htmlspecialchars($_POST['pseudo']);
         $mail = htmlspecialchars($_POST['mail']);
         $mail2 = htmlspecialchars($_POST['mail2']);            //protection java
         $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)){
                            //==============================================================================================//
                            if ($mdp == $mdp2){
                            $insertmbr = $bdd->prepare("INSERT INTO membre (pseudo, mail, mdp) VALUES(?, ?, ?)");
                            $insertmbr->execute(array($pseudo, $mail, $mdp));
                            $erreur = "Votre compte a bien été enregistré!";
                            }//mdp
                            else
                            {
                               $erreur = "le mot de passe ne conrespond pas!";
                            }        
                            //==============================================================================================//                            
                            }//filtervalidate
                           else
                           {
                             $erreur = "Votre adresse email n'est pas valide!";
                           }
                           //============================================================================================================================
                         }// mail = mail2 
                          else
                          {
                             $erreur = "l'adresse email ne conrespond pas!";
                          }
                          //================================================================================================================================//
                      }//taillepseudo      
                 else
                 {
                    $erreur = "Votre pseudo est tro long";
                 }
                 //=========================================================================================================================//  
              }//champ complété
              else
              {
                 $erreur = "Tous les champs doivent être conpleter!";
              }
              //===================================================================================================================//
            }//si appuie sur le bouton formulaire
?>
Voila le code php fonctionnel, je l'ai réessayer avec une bdd etc, tout est fonctionnel. donc j'ai eu une erreur de parsing, un } en trop, donc retirée, puis le code fonctionne. Je te laisse comme c'est mais modifi ton PDO et ton INSERT par les valeurs que tu as Sourire en esperant aidé (ps j'ulite wamp, donc n'oublie pas de remettre root en mot de passe PDO Tire la langue )
Publicité

Xooit

Messages: 12

bonjour sa ne marche toujours pas mais merci quand-même de m'avoir aider je vous remercie tous Sourire:)

Xooit

Messages: 12

sa doit être camp qui bues je vais réessayer sur wamp la semaine prochaine je vous tient au courant et si sa fonctionne je marquerai  pk .

julienb

Messages: 34

Installe xdebug et poste nous les messages d'erreurs que tu as quand tu essayes d'utiliser ton code.

Paolacci

Messages: 16

Tu as bien mis la balise </form> à la fin de ton formulaire ? 

yvan

Messages: 4

essai ça et il faut être sure que les même entité de ta base de donnée son les même dans ton code

yvan

Messages: 4

<meta charset="utf8">
<?php
$bdd = new PDO('mysql:host=localhost;dbname=formulaire','root','');
//$mot_de_passe = sha1($_POST['mot_de_passe']);
if (isset($_POST['submit'])) 
{
$pseudo = htmlspecialchars(trim($_POST['pseudo']));
$mot_de_passe = htmlspecialchars(trim($_POST['mot_de_passe']));
if (empty($pseudo)) 
{
echo "Veuilez saisir votre pseudo S.V.P !<br/>";
}else if (empty($mot_de_passe)) 

{
echo "Veuillez saisir votre mot de passe S.V.P !";
}else { 
$pseudo = htmlspecialchars($_POST['pseudo']);
$mot_de_passe = htmlspecialchars($_POST['mot_de_passe']);
$insertmsg = $bdd ->prepare('INSERT INTO utilisateur(pseudo,mot_de_passe) VALUES (?,?) ');
$insertmsg -> execute(array($pseudo,$mot_de_passe));
$mot_de_passe = md5($mot_de_passe);
die('Vous êtes connecter');
       
//$req = $bdd->prepare("SELECT id FROM utilisateur WHERE pseudo=$pseudo AND mot_de_passe=$mot_de_passe");
//$req ->execute(array('pseudo' => $pseudo, 'mot_de_passe' => $mot_de_passe));
//$resultat = $req-> fetch();
//if(!$resultat)

// {

// echo "Nom d'utilisateur ou mot de passe incorrect";
//}else{
   // session_start();
   // $_SESSION['id'] = $resultat['id'];
   // $_SESSION['pseudo'] = $pseudo;
   // $_SESSION['mot_de_passe'] = $mot_de_passe;
       //echo 'Vous êtes connecté !';
//}
       
       }
}
?>
<h1>Connexion</h1>
<form action="connexion.php" method="POST">
<p>Votre pseudo</p>
<input type="text" name="pseudo" /><br/>
<p>Votre mot de passe</p>
<input type="password" name="mot_de_passe" /><br/><br/>
<input type="submit" name="submit" value="Se connecter" />
</form>
<a href="inscription.php">Pas encore membre</a>

TheFlameflo

Messages: 303

Xooit, peux-tu poster un screen de ta table + bdd et ton code.
On pourrait voir où on en est dans le problème ! ^^ 

Xooit

Messages: 12

Ok je testerai ce code, je ferrai un screen de ma bdd en fin de semaine 

Merci a vous.

Xooit

Messages: 12

voici ma table 


Xooit

Messages: 12

Voici ma bdd

Xooit

Messages: 12

et voici mon code

<html>
   <meta charset="UTF-8">
   <link rel="stylesheet" type="text/css" href="style.css">
      <head>
         <?php
            include('title.php');
         ?>
      </head>
            <body>
               <div id="conteneur">
               <?php
                  include('titre.php');
                  ?>
                              
               <!--debut menu-->
                  <?php
                  include('menu.php');
                  ?>
            <!--fin menu-->
            <!--debut contenue-->
            <section id="contenu">
                  <article>
                     <h1>Inscription</h1>
                     <form method="post" action="inscription.php">
                     <?php
                        if (isset($erreur)) 
                        {
                           echo '<font color="red">'.$erreur."</font>";
                        }
                        ?>
                        <fieldset style="margin-right: 20px;">
                           
                              <center>
                              <p id="coco">
                                 <label for="pseudo">pseudo: </label>
                                 
                              <input type="pseudo" name="pseudo"  placeholder="Ex: Votre pseudo" value="<?php if (isset($pseudo)){ echo $pseudo;} ?>"/><br><br>
                                    
                                 <label for="mail">email: </label>
                              
                              <input type="email" name="mail"  placeholder="Votre Email" id="mail" value="<?php if (isset($mail)){ echo $mail;} ?>"/><br><br>
                           
                                 <label for="mail2">Confirmation du mail: </label>
                              
                              <input  align="justify" type="mail" name="mail2"  placeholder="Confirmer votre email:" id="mail2" value="<?php if (isset($mail2)){ echo $mail2;} ?>" /><br><br>
                                 <label for="mdp">Mot de passe: </label>
                           
                              <input type="password" name="mdp"  placeholder="Votre mot de passe:" id="mdp" /><br><br>
                           
                                 <label for="mdp2">Confirmation du mot de passe: </label>
                              
                              <input type="password" name="mdp2"  placeholder="Confirmer votre mot de passe:" id="mdp2" /><br><br>
                              
                              
                                 
                                    <input type="submit" name="forminscription" value="valider"/><br>
                                    
                              
                              </center>
                              </strong>
                           
                        </fieldset>
                        </p>
                        </form>
                        <?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=membres', 'root','root');
      if (isset($_POST['forminscription'])){
         $pseudo = htmlspecialchars($_POST['pseudo']);
         $mail = htmlspecialchars($_POST['mail']);
         $mail2 = htmlspecialchars($_POST['mail2']);            //protection java
         $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)){
                            //==============================================================================================//
                            if ($mdp == $mdp2){
                            $insertmbr = $bdd->prepare("INSERT INTO membres (pseudo, mail, mdp) VALUES(?, ?, ?)");
                            $insertmbr->execute(array($pseudo, $mail, $mdp));
                            $erreur = "Votre compte a bien été enregistré!";
                            }//mdp
                            else
                            {
                               $erreur = "le mot de passe ne conrespond pas!";
                            }        
                            //==============================================================================================//                            
                            }//filtervalidate
                           else
                           {
                             $erreur = "Votre adresse email n'est pas valide!";
                           }
                           //============================================================================================================================
                         }// mail = mail2 
                          else
                          {
                             $erreur = "l'adresse email ne conrespond pas!";
                          }
                          //================================================================================================================================//
                      }//taillepseudo      
                 else
                 {
                    $erreur = "Votre pseudo est tro long";
                 }
                 //=========================================================================================================================//  
              }//champ complété
              else
              {
                 $erreur = "Tous les champs doivent être conpleter!";
              }
              //===================================================================================================================//
            }//si appuie sur le bouton formulaire
            mysql_close();
?>
                  </article>
               </section>
               <!--fin contenue-->
               <!-- debut aside -->
               <?php>
               include('sidebar.php');
               ?>
            </body>
</html>


Xooit

Messages: 12

voila


Veuillez vous connecter ou créer un compte pour poster une réponse