Partage
  • Partager sur Facebook
  • Partager sur Twitter

Formulaire ne s'introduit pas dans la BDD

Sujet résolu
    26 avril 2017 à 19:25:56

    Salut tout le monde

    je m'exerce à partir d'un tuto afin d'apprendre à créer un formulaire d'inscription, je l'ai fini et j'ai voulu recommencer mais sans utiliser le tutoriel afin de voir si j'avais bien compris les différentes fonctions etc.. Ma page inscription touche à sa fin, je me suis précipité sur l'inscription et je sais que dans le code il manque de conditions mais ce n'est pas trop un soucis, là mon problème est que quand je fini de taper le pseudo, mdp et mail je reçois bien le message de confirmation mais le soucis est que quand je rafraîchi ma page de BDD l'utilisateur ajouter n'apparaît pas..

    Je n'arrive pas à comprendre d'où vient le problème, j'ai d'ouvert et mon fichier PHP du tuto que j'avais suivis et qui fonctionner à merveille, et mon second PHP ouvert en parallèle afin de voir d'où est le problème mais je ne trouve pas.. Je vous laisse mon code :

    <?php
    
    $bdd = new PDO('mysql:host=127.0.0.1;dbname=inscription_form;charset=utf8', 'root', '');
    
    if (isset($_POST['forminscription'])) 
    	{	
    		$pseudo = htmlspecialchars($_POST['pseudo']);
    		$email = htmlspecialchars($_POST['email']);
    		$email2 = htmlspecialchars($_POST['email2']);
    		$password = sha1($_POST['password']);
    		$password2 = sha1($_POST['password2']);
    
    			if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['email2']) AND !empty($_POST['password']) AND !empty($_POST['password2']))
    			{
    				$longpseudo = strlen($pseudo);
    				if($longpseudo <= 30)
    					{
    						$reqpseudo = $bdd->prepare("SELECT * FROM members WHERE pseudo = ? ");
    						$reqpseudo->execute(array($pseudo));
    						$pseudoexist = $reqpseudo->rowCount();
    						if($pseudoexist == 0)
    							{	
    								if ($email == $email2) 
    								{
    									if(filter_var($email, FILTER_VALIDATE_EMAIL))
    										{	
    											$reqemail = $bdd->prepare("SELECT * FROM members WHERE email = ? ");
    											$reqemail->execute(array($pseudo));
    											$pseudoexist = $reqemail->rowCount();
    											if($pseudoexist == 0)
    												{	
    													if($password == $password2)
    														{	
    															$insertmbr = $bdd->prepare("INSERT INTO members(pseudo, email, password) VALUES(?,?,?)");
    															$insertmbr->execute(array($pseudo, $email, $password));
    															$valide = "Votre compte a bien était créer !";
    														}
    												}
    											else
    												{	
    													$erreur = "Votre Email est déjà utiliser";
    												}
    										}
    									else
    										{	
    											$erreur = "Votre mail n'est pas valide";
    										}
    								}
    
    								else
    									{
    										$erreur = "Vos emails ne sont pas identiques!";
    									}
    							}
    
    					}
    				else
    					{	
    						$erreur = "Votre pseudo doit contenir 30 caracteres maximum !";
    					}
    			}
    
    
    	}
    ?>
    
    
    
    <!doctype html>
    <html lang="fr">
    <head>
      <meta charset="utf-8">
      <title>MA SUPER PAGE</title>
    </head>
    <body>
    <div align="center">
    <table>
    	<form method="post" action="">
    		<tr>
    			<td align="right">
    		       <label for="pseudo">Pseudo :</label>
    		       <input type="text" name="pseudo" id="pseudo" value="<?php  if(isset($pseudo)) { echo $pseudo; } ?>"/>
    		    </td>
    		</tr>
    		       <br /><br />
    		<tr>
    			<td align="right">
    		       <label for="password">Mot de passe :</label>
    		       <input type="password" name="password" id="password" value=""/>
    		    </td>
    		</tr>
    		<tr>
    			<td align="right">
    		       <label for="password2">Confirmez mot de passe :</label>
    		       <input type="password" name="password2" id="password2" value=""/>
    		    </td>
    		</tr>
    		<tr>
    			<td align="right">
    		       <label for="email">Votre email :</label>
    		       <input type="email" name="email" id="email" value="<?php  if(isset($email)) { echo $email; } ?>"/>
    		    </td>
    		</tr>
    		<tr>
    			<td align="right">
    		       <label for="email2">Confirmez votre email :</label>
    		       <input type="email" name="email2" id="email2" value="<?php  if(isset($email2)) { echo $email2; } ?>"/>
    		    </td>
    		</tr>
            <tr>
            	<td align="center">
            	<br />
                	<input type="submit" name="forminscription" value="Je m'inscris" />
                    </td>
                   </tr>
    </table>
          
       </p>
    </form>
    
    <?php
    
    	if(isset($erreur))
    	{
    		echo '<font color="red">'.$erreur.'</font>';
    	}
    
    	if(isset($valide))
    	{
    		echo '<font color="green">'.$valide.'</font>';
    	}
    
    ?>
    </div> 
    </body>
    </html>

    J’espère que vous pourrais trouver le problème..

    Ma BDD est déjà bien connecter, elle s'appel "inscription_form" et la table où doivent logiquement être ajouter les membres s'appel "members".

    -
    Edité par Mehdiine 26 avril 2017 à 19:31:09

    • Partager sur Facebook
    • Partager sur Twitter
    La victoire ou la MORT!
      26 avril 2017 à 19:39:29

      Es-tu sûr que PDO arrive à se connecter à ta bdd?

      pour être sûr, vérifie la comme ça: https://openclassrooms.com/forum/sujet/comment-verifier-si-la-connexion-avec-la-bdd-en-pdo-est-o-96800

      Ensuite, je n'ai jamais vraiment réussi à utiliser AND et OR. Pour être sûr que ton deuxième if est exécuter, mais un else avec un echo.

      • Partager sur Facebook
      • Partager sur Twitter
      Rien ne vaut mieux qu'apprendre à sa façon!
        26 avril 2017 à 20:03:46

        Salut,

        oui oui tout est bien connecter parfaitement, je n'arrive pas à comprend d'où vient le problème c'est saoulant à force :lol:

        • Partager sur Facebook
        • Partager sur Twitter
        La victoire ou la MORT!
          26 avril 2017 à 20:17:04

          Met ini_set('display_errors', 1) au début de ton code pour voir les erreurs que php génère.
          • Partager sur Facebook
          • Partager sur Twitter
          Rien ne vaut mieux qu'apprendre à sa façon!
            26 avril 2017 à 20:39:09

            Il y a aucune erreurs de détecter
            • Partager sur Facebook
            • Partager sur Twitter
            La victoire ou la MORT!
              26 avril 2017 à 22:23:01

              L'erreur provient de ta balise form : dans action tu as mis un espace ..... enleve l'espace et réessaie.

              Si le problème persiste, ecrit en tout debut de ton code apres la balise php : print_r($_POST);

              -
              Edité par CédricFARINAZZO 26 avril 2017 à 22:26:36

              • Partager sur Facebook
              • Partager sur Twitter
                27 avril 2017 à 15:30:11

                CédricFARINAZZO a écrit:

                L'erreur provient de ta balise form : dans action tu as mis un espace ..... enleve l'espace et réessaie.

                Si le problème persiste, ecrit en tout debut de ton code apres la balise php : print_r($_POST);

                -
                Edité par CédricFARINAZZO il y a environ 17 heures


                C'était ça, merci énormément !
                • Partager sur Facebook
                • Partager sur Twitter
                La victoire ou la MORT!
                  28 avril 2017 à 16:13:16

                  Je suis content que ca marche !

                  Derien et bonne journée !!!

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Formulaire ne s'introduit pas dans la 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