Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème rafraichissement page après requete bdd

TP Blog avec commentaires

    16 janvier 2019 à 21:43:37

    Bonsoir,

    Je suis sur le TP du blog avec commentaire que j'ai terminé, je suis donc dans la partie "aller plus loin".

    Je suis un peu coincé après avoir envoyé mon commentaire vers la bdd, il s'ajoute bien, et à la fin du traitement je fais une redirection vers la page où sont affiché les commentaires sauf que j'ai des erreurs, je pense que ça vient du fait que la page n'est pas rafraichi mais je ne sais pas comment m'y prendre.

    Si l'un ou l'une d'entre vous à une idée je suis preneur :)

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      16 janvier 2019 à 21:48:33

      Si tu ne fournis ni lesdites erreurs ni le code PHP, c'est un voyant ou autre marabout qu'il faudra consulter ...

      • Partager sur Facebook
      • Partager sur Twitter
        16 janvier 2019 à 22:12:35

        julp a écrit:

        Si tu ne fournis ni lesdites erreurs ni le code PHP, c'est un voyant ou autre marabout qu'il faudra consulter ...


        Je suis sur la page où s'affiche les commentaires (commentaires.php) j'ai un formulaire, je tape le nom et le commentaire, le traitement ce fait sur la page commentaires_post.php, ca envoie dans la bdd tout ça ok et juste après le traitement je fais un
        header("Location:commentaires.php");

        J'ai des erreurs sur un GET manquant qui vient normalement d'une page précédente.

        Notice: Undefined index: billet in /Applications/MAMP/htdocs/Blog/commentaires.php on line 31

        -
        Edité par Lucas_Fl 16 janvier 2019 à 22:13:57

        • Partager sur Facebook
        • Partager sur Twitter
          16 janvier 2019 à 22:25:42

          Bhé, t'as l'erreur et la solution dans ton propre message.
          Il ne trouve pas l'index "billet", qui serait donc ton GET manquant comme tu le dis.
          Remet le dans ta redirection, non ?
          • Partager sur Facebook
          • Partager sur Twitter
            16 janvier 2019 à 22:32:51

            Notice: Undefined index: billet in /Applications/MAMP/htdocs/Blog/commentaires.php on line 31
            • Partager sur Facebook
            • Partager sur Twitter
              16 janvier 2019 à 23:06:35

              Non mais franchement, comment veux-tu qu'on te dépanne avec une pauvre ligne de code ?!?

              header("Location: commentaires.php?billet=" . XXX);

              ? (je pense comme Koyuki Tanaka, le XXX étant à remplacer/compléter de façon à reprendre l'id du billet commenté que tu dois déjà avoir d'une façon ou d'une autre)

              PS : ce n'est pas parce que tu suis un cours ou TP d'ici, que l'on se rappelle du code correspondant pour autant (et encore faut-il déjà l'avoir fait à la base), mettre un lien vers celui-ci serait loin d'être superflu

              -
              Edité par julp 16 janvier 2019 à 23:30:36

              • Partager sur Facebook
              • Partager sur Twitter
                16 janvier 2019 à 23:09:23

                Super, j'ai passé ca en variable de session dans la redirection et ca fonctionne, merci !
                • Partager sur Facebook
                • Partager sur Twitter
                  16 janvier 2019 à 23:10:30

                  Mais, pourquoi le mettre en session ? et pas simplement ta ton header  Location ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 janvier 2019 à 23:27:02

                    Koyuki Tanaka a écrit:

                    Mais, pourquoi le mettre en session ? et pas simplement ta ton header  Location ?


                    J'ai fais comme ça en gros :

                    header("Location:commentaires.php?billet=" . $_SESSION['billets'] . "");



                    • Partager sur Facebook
                    • Partager sur Twitter
                      17 janvier 2019 à 11:12:53

                      Oui mais pourquoi la Session ? On peut voir le code de ta page commentaires_post.php?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        17 janvier 2019 à 20:18:36

                        C'était pour récupérer le même $_GET['billet'] de la des billets qui va vers la page de commentaire.

                        <?php
                        session_start();
                        	try
                        {
                        	$bdd = new PDO('mysql:host=localhost;dbname=mock_data;charset=utf8', 'root', 'root', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                        }
                        catch(Exception $e)
                        {
                        	echo "<div style='position:absolute; left:25%; width:50%; text-align:center'><p style='background-color:red; color: white'>Erreur de connexion à la base de données !</p></div>";
                        }
                        
                        $requete = $bdd->prepare("INSERT INTO commentaires(id_billet, auteur, commentaire, date_commentaire) VALUES(" . $_SESSION['billets'] . ",?,?,CURRENT_TIMESTAMP)");
                        
                        $requete->execute(array($_POST['nom'], $_POST['commentaire']));
                        
                        $requete->closeCursor();
                        
                        header("Location:commentaires.php?billet=" . $_SESSION['billets'] . "");
                        
                        ?>  
                        
                        



                        • Partager sur Facebook
                        • Partager sur Twitter
                          18 janvier 2019 à 13:03:09

                          Mais l'utilisation de SESSION pour ce cas là, n'est pas utile je trouve.
                          Tu peut très bien garder ton $_GET.

                          commentaires.php => Formulaire vers commentaires_post.php?idbillet=ID_BILLET

                          commentaires_.php =>  redirection vers commentaires.php?billet=$_GET['idbillet']

                          • Partager sur Facebook
                          • Partager sur Twitter
                            18 janvier 2019 à 14:31:49

                            @Lucas_Fl : Même si ton soucis est résolu ce que @Koyuki Tanaka te dis est primordial.

                            Puisque commentaires_post.php possède déjà la valeur GET idbillet, tu peux donc t'en resservir pour la redirection. C'est d'autant plus vrai que la personne qui accédera à nouveau à commentaires.php va potentiellement déclencher un traitement qu'il ne devrait pas en le mettant dans $_SESSION.

                            -
                            Edité par RPGBookOnline 18 janvier 2019 à 14:32:10

                            • Partager sur Facebook
                            • Partager sur Twitter
                              20 janvier 2019 à 19:22:45

                              Très bien, merci à vous, je vais améliorer mon code dans ce cas. :)
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Problème rafraichissement page après requete 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