Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer données utilisateur...

...afin de les implémenter dans la base de données

    10 décembre 2018 à 15:52:54

    Bonjour, 

    J'essaie de récupérer des données d'un utilisateur avec des formulaires pour les stocker dans une base de données mais je n'y arrive pas. 

    Quelqu'un pourrait-il m'aider un peu ?

    Voici les codes php et html :

    <?php  
    $bdd = new PDO('mysql:host=localhost;dbname=users;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    
    
    var_dump($_POST);
    if(isset($_POST['pseudo']) AND !empty($_POST['pseudo']) AND isset($_POST['pass'])  AND !empty($_POST['pass']) AND isset($_POST['email'])  AND !empty($_POST['email']) AND isset($_POST['inscription'])  AND !empty($_POST['inscription']))
    {
    
    
    
    $pass_hache = password_hash($_POST['pass'], PASSWORD_DEFAULT);
    
    $req = $bdd->prepare('INSERT INTO utilisateurs(us_pseudo, us_mdp, us_mail) VALUES(:pseudo, :pass, :email');
    $req->execute(array(
    	'pseudo' => $_POST['pseudo'],
    	'pass' => $_POST['pass'],
    	'email' => $_POST['email']));
    
    var_dump($_POST);
    
    }
    
    ?>
    <form method="post" action="espace_membre.php">
    		   <p>
                    <label for="pseudo">Votre pseudo : 
    		          <input type="text" name="pseudo" id="pseudo" placeholder="Votre pseudo...">
                    </label><br>
                    <label for="pass">Votre mot de passe :
    		          <input type="password" name="pass" id="pass" placeholder="Votre mot de passe...">
                    </label><br>
                    <!--<label for="email">Votre adresse mail :
                      <input type="text" name="email" id="email" placeholder="Votre adresse email...">
                    </label><br>
                    <label for="inscription"> Date d'aujourd'hui :
                      <input type="date" name="inscription" id="inscription">
                    </label>--><br>
                
                    <label for="valider">
                       <input type="submit" value="Valider">
                   </label>
    		       
    		   </p>
    		</form>



    -
    Edité par Huriiil B. 11 décembre 2018 à 9:18:00

    • Partager sur Facebook
    • Partager sur Twitter
      10 décembre 2018 à 15:56:37

      Bonjour,

      Quel est le problème ? Sans savoir le problème on ne peut pas aider. Ou du moins sans message d'erreur

      • Partager sur Facebook
      • Partager sur Twitter
        10 décembre 2018 à 16:03:06

        Oui c'est vrai désolé ça fait des heures que je suis dans la tourmente sur ce problème et j'avoue que ça m'a complètement vidé... 

        Voici un screen d'erreur :

        Mais déjà je voulais avoir un retour sur ce code aussi...

        Les variables sont bien stockées dans $_POST mais ne sont pas implémentées dans la bdd

        • Partager sur Facebook
        • Partager sur Twitter
          10 décembre 2018 à 16:07:04

          Bonjour,

          Manque de précisions

          Vous êtes ici sur un forum d'entraide communautaire et non pas sur un forum de demande de service, le but n'est donc pas de fournir une réponse toute faite ou de directement fournir la solution à quiconque viendrait sans la moindre trace. Afin d'obtenir de l'aide et une solution à votre problème, il est fortement recommandé de présenter clairement l'état actuel du problème en nous fournissant :

          • Un descriptif clair et précis du problème
          • La tentative actuelle de résolution que vous avez effectué
          • Le résultat attendu et le résultat actuel
          • Toutes pistes de recherches pouvant aider à la résolution

          Mauvais titre

          Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

          Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

          De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

          Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

          Pour modifier votre titre, éditez le premier message de votre sujet.

          (titre originel : Problème de.. Je ne sais pas...)

          • Partager sur Facebook
          • Partager sur Twitter

          Pas d'aide concernant le code par MP, le forum est là pour ça :)

            10 décembre 2018 à 16:09:56

            Premièrement pourquoi tu n'envois pas le mdp hash dans la bdd ?

            Ensuite, ta requête n'est pas bonne, il manque une parenthèse.

            Puis, renseignes toi sur la fonction empty de php, tu as trop de condition inutile dans ton if

            • Partager sur Facebook
            • Partager sur Twitter
              10 décembre 2018 à 16:11:53

              Salut !

              Alors c'est assez surprenant l'erreur que tu nous mentionnes, parce que le code que tu nous as fourni devrait mentionner qu'il tente d'appeler une méthode de quelque chose qui n'est pas un objet à cause d'un souci de syntaxe dans la requête à préparer. J'imagine que tu as modifié ce code depuis ?

              Si jamais, tester avec isset($_POST['truc']) AND !empty($_POST['truc']), c'est comme de dire que le cheval blanc est blanc, c'est redondant. Conserve uniquement !empty() dans ton cas.
              Ensuite, tu haches le mot de passe, mais tu n'utilises pas le résultat lors de l'insertion dans la base de données…

              Edit

              Encore et toujours, mais c'est comme le markdown, on n'en saura jamais rien

              -
              Edité par Ymox 10 décembre 2018 à 16:13:41

              • Partager sur Facebook
              • Partager sur Twitter
                10 décembre 2018 à 16:29:47

                Salut Ymox, 

                Oui en effet je n'ai pas arrêté de changer et je n'y arrive plus...  

                Ymox a écrit :

                Ensuite, tu haches le mot de passe, mais tu n'utilises pas le résultat lors de l'insertion dans la base de données…



                Je ne l'utilise pas parce que je ne sais pas comment faire en fait Il faudrait que j'écrive ça : 'pass' => $pass_hache)); ?

                • Partager sur Facebook
                • Partager sur Twitter
                  10 décembre 2018 à 16:35:40

                  Huriiil B. a écrit:

                  Il faudrait que j'écrive ça : 'pass' => $pass_hache)); ?

                  Oui.

                  Si tu as changé le code, montre-nous au moins celui qui va avec l'erreur. Si celle-ci a changé entre-temps, alors donne-nous le code et la nouvelle erreur.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    10 décembre 2018 à 16:41:57

                    En effet c'est pas plus bête... Désolé j'suis total débutant... 

                    Je te partages ça tout de suite : 

                    <?php  
                    $bdd = new PDO('mysql:host=localhost;dbname=users;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                    
                    
                    var_dump($_POST);
                    if(!empty($_POST['pseudo']) AND !empty($_POST['pass']))
                    {
                    $pass_hache = password_hash($_POST['pass'], PASSWORD_DEFAULT);
                    
                    $req = $bdd->prepare('INSERT INTO users(us_pseudo, us_mdp) VALUES(:pseudo, :pass');
                    $req->execute(array(
                    	'pseudo' => $_POST['pseudo'],
                    	'pass' => $pass_hache));
                    
                    var_dump($_POST);
                    
                    }
                    
                    ?>

                    Et le formulaire :

                    <form method="post" action="espace_membre.php">
                    		   <p>
                                    <label for="pseudo">Votre pseudo : 
                    		          <input type="text" name="pseudo" id="pseudo" placeholder="Votre pseudo...">
                                    </label><br>
                                    <label for="pass">Votre mot de passe :
                    		          <input type="password" name="pass" id="pass" placeholder="Votre mot de passe...">
                                    </label><br>
                                    <!--
                                    <label for="email">Votre adresse mail :
                                      <input type="text" name="email" id="email" placeholder="Votre adresse email...">
                                    </label><br>
                                    <label for="inscription"> Date d'aujourd'hui :
                                      <input type="date" name="inscription" id="inscription">
                                    </label>--><br>
                    
                                    <label for="valider">
                                       <input type="submit" value="Valider">
                                   </label>
                    		       
                    		   </p>
                    		</form>


                    Edit : Oups, oublié le screen de l'erreur 

                    -
                    Edité par Huriiil B. 10 décembre 2018 à 16:43:23

                    • Partager sur Facebook
                    • Partager sur Twitter
                      10 décembre 2018 à 16:45:03

                      Il manque toujours une parenthèse dans la requête.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        10 décembre 2018 à 16:51:00

                        Ici Matioso ? 

                        $req = $bdd->prepare('INSERT INTO users(us_pseudo, us_mdp) VALUES(:pseudo, :pass'));


                        Si c'est ça je l'ai modifié à l'instant...

                        -
                        Edité par Huriiil B. 10 décembre 2018 à 16:51:42

                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 décembre 2018 à 16:52:34

                          Mais maintenant tu vas avoir une erreur de syntaxe.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            10 décembre 2018 à 16:53:54

                            Oui en effet, je viens de modifier...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              10 décembre 2018 à 16:54:04

                              Ce n'est pas une erreur de syntaxe PHP qui t'était mentionnée auparavant, mais SQL. Avec le dernier changement que tu proposes, tu auras les deux…

                              La requête SQL est entre les guillemets, si jamais  ;)

                              Et change le titre de ton sujet comme demandé, sans quoi il sera fermé. Répondre au sujet sans tenir compte d'une demande d'un modérateur, c'est un peu comme se ficher de lui, et va savoir pourquoi, ils n'aiment pas trop…

                              -
                              Edité par Ymox 10 décembre 2018 à 16:55:20

                              • Partager sur Facebook
                              • Partager sur Twitter
                                10 décembre 2018 à 16:54:38

                                Du coup, encore des erreurs ?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  10 décembre 2018 à 16:58:12

                                  @Ymox

                                  Ben j'aimerais bien mais je n'ai pas trouvé comment changer le titre...

                                  Oui j'ai changé et j'ai mis la parenthèse dans le guillemet

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    10 décembre 2018 à 16:59:33

                                    Lamecarlate a écrit:

                                    Pour modifier votre titre, éditez le premier message de votre sujet.

                                    Et le bouton d'édition apparaît en haut à droite du message au survol dudit message.

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      10 décembre 2018 à 17:01:18

                                      Ça marche !

                                      Je n'y croyais plus et j'étais vraiment au fond franchement merci infiniment :)

                                      -
                                      Edité par Huriiil B. 11 décembre 2018 à 9:16:43

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        10 décembre 2018 à 21:12:36

                                        Bon, "problème de base de données" n'est pas très correct non plus, c'est trop vague… L'idée c'est de faire un titre descriptif, qui indique en quelques mots le problème - et permette aussi de retrouver le topic si on fait une recherche future :)
                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Pas d'aide concernant le code par MP, le forum est là pour ça :)

                                          11 décembre 2018 à 9:22:18

                                          J'ai modifié, j'espère que ça ira cette fois. Désolé hier j'étais plus très objectif.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            11 décembre 2018 à 9:44:44

                                            Pas de souci :)

                                            Merci d'avoir modifié, et bonne continuation !

                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Pas d'aide concernant le code par MP, le forum est là pour ça :)

                                              11 décembre 2018 à 9:54:21

                                              Y a pas de quoi. Si le sujet peut être utile à quelqu'un
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              Récupérer données utilisateur...

                                              × 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