Enregistrement impossible dans la bd

Rechercher
Boutique en ligne, solution e-commerce, script PHP et PERL : RAYNETTE

Enregistrement impossible dans la bd

Par GETHALEX  -  3 reponses  -  Le 02/12/2015 16:23  -  Editer  - 

Bonjour, je suis un nouveau en php poo, mon application est php poo aussi: le code qui me permet d'effectuer des enregistrements est celui

inscription.php

    <?php  

        session_start();  
          // ---- INCLUSIONS ---- //  
        //include_once('../lib/pdoconnexion.php');  
          //$bdd = new PDO('mysql:host=localhost;dbname=gestionalertes','root','Geth@lex/007');  
        include_once('fonction/souscription.class.php');  

          // INCLUSION DE LA BASE DE DONNEES  
    $bdd = new PDO('mysql:host=localhost;dbname=gestionalertes','root','Geth@lex/007');  

          // ---- VERIFCATION DES PARAMETRES ----//  
        if(isset($_POST) and isset($_POST['pseudo_membres']) and isset($_POST['email_professionnel']) and isset($_POST['pass_membres']) and isset($_POST['motdepasse'])){  

                   // ---- INSTANCIATION DE LA CLASSE ----//  
             $souscrire = new Souscription($_POST['pseudo_membres'], $_POST['email_professionnel'], $_POST['pass_membres'], $_POST['motdepasse']);  

                  // ---- RECUPERATION DE FONCTION ----//  
              $control = $souscrire->Verification();  

              if($control == 'OK'){ // ---TOUT EST BON---//  

                  $enreg = $souscrire->Enregistrer();   

                 if($enreg == 'Enregistr&eacute;e'){  

                     //echo 'Parfait enregistrement';  
                     header('Location:accuse_reception.php');  
                 }  
                 else{   
                     echo 'L\'inscription a &eacute;chou&eacute;e';  
                 }  
              }  
              else{  

                  $erreur = $control;  
              }  
        }  

    ?>  

    <!DOCTYPE HTML>  

    <html>  

    <head>  
      <title>INSCRIPTION</title>  
      <link type="text/css" rel="stylesheet" href="../static/css/designer.css">  
      <link rel="Shortcut Icon" type="image/x-icon" href="../static/images/favicon.ico">  
      <meta http-equiv="content-type" content="text/html; charset=utf-8" />  
    </head>  

    <body  style="background: url('../static/images/background.gif') center top no-repeat;">  
        <div id="body" ><br/>  
            <?php include_once('../conf/header2.php'); ?>  
                <!--CETTE PARTIE DU CODE PERMET L'AFFICHAGE DES INFOS DE LA CNPS-->  
              <div id="cadre-horizon">  

                  <!--CETTE INCLUSION PERMET L'AFFICHAGE DES DIV CONTENANT -->  
                 <?php include_once('../conf/inclusion2.php'); ?>  

                </div><br/>&nbsp;  
                <center>  
                    &nbsp;&nbsp;&nbsp;&nbsp;  
                        <div id="aff-contenu" class="posts">  
                            <br/>  
                               <div class="connect">&nbsp;&nbsp;&nbsp;  

                                    <div class="connect1" >  
                                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
                                        <fieldset id="fieldset" >  
                                            <legend>  
                                                <strong>  
                                                    Formulaire d&DiacriticalAcute;inscription  
                                                </strong>  
                                            </legend>  
                                              <br/><br/><br/><br/>  
                                            <form method="post" name="" id="">  

                                            <table width="100%" cellpadding="2" cellspacing="3" class="text" border="0">  

                                                 <tr width="25%">  
                                                     <td align="right" width="3,50%">  
                                                         <label for="pseudo_membres"><strong>Pseudo </strong></label>  
                                                     </td>  
                                                     <td width="9%">  
                                                         <input type="text" name="pseudo_membres" title="Nom utilisateur..." required="required" size="25">  
                                                     </td>  
                                                 </tr>  
                                                 <tr width="25%">  
                                                     <td align="right" width="3,50%">  
                                                         <label for="email_professionnel"><strong>Email prof. </strong></label>  
                                                     </td>  
                                                     <td width="9%">  
                                                         <input type="text" name="email_professionnel" title="Email professionnelle..." required="required" size="25">  
                                                     </td>  
                                                 </tr>  

                                                 <tr width="25%">  
                                                     <td align="right" width="3,50%">  
                                                         <label for="pass_membres"><strong>Mot de passe</strong></label>  
                                                     </td>  
                                                     <td width="9%">  
                                                         <input type="password" name="pass_membres" title="Votre mot de passe..." required="required" size="25">  
                                                     </td>  
                                                 </tr>  

                                                 <tr width="25%">  
                                                     <td align="right" width="3,50%">  
                                                         <label for="motdepasse"><strong>Confirmation </strong></label>  
                                                     </td>  
                                                     <td width="9%">  
                                                         <input type="password" name="motdepasse" title="Confirmez votre mot de passe..." required="required" size="25">  
                                                     </td>  
                                                 </tr>  
                                                 <tr width="25%">  
                                                     <td align="right" width="3,50%">  
                                                        &nbsp;  
                                                     </td>  
                                                     <td width="9%">  
                                                         &nbsp;  
                                                     </td>  
                                                 </tr>  
                                                 <tr width="25%">  
                                                     <td align="right" width="3,50%">  
                                                         &nbsp;  
                                                     </td>  
                                                     <td width="9%">  
                                                         <input type="submit" name="envoyer"  value="S&DiacriticalAcute;I N S C R I R E" class="bouton">  
                                                          <input type="hidden" name="verif-ajout">  
                                                          <span style="color: red;"><?php  
                                                             if(isset($erreur)){  
                                                                 echo $erreur;  
                                                                }  
                                                           ?>  
                                                          </span>      
                                                     </td>  
                                                 </tr>  
                                            </table>  
                                         </form>  
                                       </fieldset>  
                                   </div> <br>  
                                        <hr style="width: 450px;">  
                                          <p style="text-align: justify; font-size: 13px; width: 430px;" class="text">  
                                            Cette inscription vous permet d&DiacriticalAcute;&ecirc;tre membre de cette &eacute;quipe.  
                                            D&egrave;s que vous cliquez sur le bouton S&DiacriticalAcute;INSCRIRE, automatiquement vous recevrez un email pour valider votre inscription.  
                                            En validant cette inscription depuis votre compte, vous acceptez les <a href="#" style="text-decoration: none">Conditions g&eacute;n&eacute;rales</a> de cette application.                                     </p>  
                                        <hr style="width: 450px;">&nbsp;  
                              </div>  
                            <br/>  
                        </div>  
                 </center>  
        </div>  
    </body>  

    </html>  

et code php

    <?php  

     class Souscription{  

        private $pseudo_membres;  
        private $email_professionnel;  
        private $pass_membres;  
        private $motdepasse;  

        public function __construct($pseudo_membres, $email_professionnel, $pass_membres,$motdepasse){  

              $nomuser = htmlentities($pseudo_membres);  
              $adresmail = htmlentities($email_professionnel);  
              $password = htmlentities(sha1($pass_membres));  
              $motpasse = htmlentities($motdepasse);  

                $this->pseudo_membres = $nomuser;  
                $this->email_professionnel = $adresmail;  
                $this->pass_membres = $password;  
                $this->motdepasse = $motpasse;  


                   echo $this->pseudo_membres .'<br/>';  
                   echo $this->email_professionnel .'<br/>';  
                   echo $this->pass_membres .'<br/>';  


          }  

        // Cette fonction pour permettra de controler les champs comme pseudo, mot de passe...  
        public function Verification(){  

             if(strlen($this->pseudo_membres) > 7 and strlen($this->pseudo_membres) < 20){  
                     // Continue si le pseudo est bon  

                    $syntaxe = '#^[\w.-]+@[\w.-]+\.[a-zA-Z0-9]{2,6}$#';  
                  if(preg_match($syntaxe,$this->email_professionnel)){  
                                // Continue si l'email est bon  

                          if($this->pass_membres == $this->motdepasse){  
                              // Continue si les mot de passe sont identiques  
                              }  
                               else {  
                                     $erreur ='Les mots de passe doivent &egrave;tre identiques.';  
                                    return $erreur;  
                                    }  
                            ////////////////////////////  
                             }  
                              else {  
                                    $erreur = 'La syntaxe de l\'adresse est mauvaise.';  
                                   return $erreur;  
                                    }  
                                //////////////////  
                      }  
                      else {  
                            $erreur ='Le pseudo doit contenir entre 7 &aacute; 20 caract&egrave;res.';  
                          return $erreur;  
                        }  
            }  

            // Cette fonction permettra les enregistrements dans la bd  

            public function Enregistrer(){  
                // COnnexion a la base  
                $bdd = new PDO('mysql:host=localhost;dbname=gestionalertes','root','Geth@lex/007');  
                // Preparation de requete  



              $sql = "INSERT INTO membres  
                       ('pseudo_membres  
                       ,email_professionnel  
                       ,pass_membres  
                       ,date_inscription)   
                 VALUES(:pseudo_membres  
                       ,:email_professionnel  
                       ,:pass_membres  
                       ,:date_inscription='"."date(Y-m-d H:i:s )"."' )";  

                $stmt = $bdd->prepare($sql);  

                // execution de la requette  

                  $stmt->execute(array(  
                    'pseudo_membres' => $this->pseudo_membres,  
                    'email_professionnel' => $this->email_professionnel,  
                    'pass_membres' => $this->pass_membres  
                    ));  
                  return 'Enregistr&eacute;e';  

                }  

            public function Session(){  

            }  

        }  

L'enregistrement n'est pas effectif.
Quelqu'un pourra-t-il m'aider

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 02/12/2015 18:21  -  Haut de page  - 

Salut,
qu'il ne se passe rien est somme toute normal.

Regarde attentivement ta classe et en particulier la méthode Verification() : cette dernière est sensée retourner quelque chose qui doit initialiser une variable :

    $control = $souscrire->Verification();  

Juste après, le code vérifie si cette variable vaut bien OK, ce qui n'arrive jamais puisque, selon le code de cette méthode, elle ne retourne quelque chose qu'en cas d'erreur.

J'ajoute du reste que cette méthode n'est pas complète : à partir de :

    if($this->pass_membres == $this->motdepasse)  

il devrait y avoir un code qui continue le traitement, mais il n'y a qu'un commentaire et... rien d'autre.

    // Continue si les mot de passe sont identiques  

Du coup, le retour attendu n'arrivant pas, la suite consistant à enregistrer les données n'est jamais déclenchée.

 
Par GETHALEX  -  Le 03/12/2015 10:27  -  Haut de page  - 

Bonjour, le but est de contrôler, au cas ou c'est vérifier on passe à l'étape suivante sinon il affichera le message d'erreur jusqu'à ce qu'on entame la fonction pour l'enregistrement.
Mon souci est l'enregistrement ne passe pas,
la fonction est-elle correcte? Y'a t-il quelque chose que je dois faire et qui n'a été? Comment dois-je la rectifier pour satisfaire l'avancée de mon application?

 
Par Cyrano  -  Le 03/12/2015 10:53  -  Haut de page  - 

Salut,
c'est ce que j'ai expliqué dans ma précédente réponse : la fonction est correcte, mais incomplète, il manque du code, ne serait-ce que celui retournant « OK » si toutes les conditions de validation sont correctement remplies.

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !