Partage
  • Partager sur Facebook
  • Partager sur Twitter

Insertion DB après une redirection

    20 mai 2019 à 15:32:40

    Bonjour,

    je viens à vous pour essayer d'élucider un mystère! J'héberge un site sur OVH, tout va bien, j'ai une DB dans laquelle je fais des insert qui fonctionnent.

    $sql = "INSERT INTO `statistiques`(`TYPE`, `DATE`) VALUES (0,now())";

    Ca fonctionne. Où est le problème?

    J'y viens de suite:

    Je souhaite mettre mon url sur Instagram qui arrive sur une page, insert en base de donnée une ligne (la meme que ci dessus) puis redirige vers ma chaine youtube. Tout fonctionne sauf une chose, l'insert en DB. Quand je lance ma page via l'URL directement ca fonctionne mais en passant par instagram c'est comme si l'insert ne se faisait pas. Pourtant la redirection se fait seulement si l'insert est correct. 

    Je ne comprends vraiment pas d'où ca vient, je suis preneur de la moindre idée! 

    Merci d'avance!

    -
    Edité par Maf. 20 mai 2019 à 15:38:58

    • Partager sur Facebook
    • Partager sur Twitter
      20 mai 2019 à 15:54:23

      et le script ? mets tu des exceptions sur PDO (si tu l'utilises) gères tu correctement les cas d'erreurs ?
      • Partager sur Facebook
      • Partager sur Twitter
        20 mai 2019 à 16:00:44

        christouphe a écrit:

        et le script ? mets tu des exceptions sur PDO (si tu l'utilises) gères tu correctement les cas d'erreurs ?

        Après avoir cliqué sur le lien sur Insta, j'arrive sur une page HTML qui a pour controller (AngularJS) une première redirection sur cette page PhP.

          window.location.href = "https://www.lucas-mafrica.com/php/clickChannelIs.php";

        Voila ce qu'il se passe en PhP:

        $conn = mysqli_connect($servername, $username, $password, $dbname);
        // Check connection
        if (!$conn) {
            die("Connection failed: " . mysqli_connect_error());
        }
        
        $sql = "INSERT INTO `statistiques`(`TYPE`, `DATE`) VALUES (3,now())";
        
        if (mysqli_query($conn, $sql)) {
          header("Location: https://www.youtube.com/Maf5TV");
        } else {
            echo "Error: " . $sql . "<br>" . mysqli_error($conn);
        }
        
        mysqli_close($conn);

         J'avais d'abord fais une requete Ajax qui lancait le code mais quand j'ai vu que ca ne marchait pas j'ai essayé la méthode de changement de page.

        -
        Edité par Maf. 20 mai 2019 à 16:05:25

        • Partager sur Facebook
        • Partager sur Twitter
          20 mai 2019 à 16:12:18

          si tu commente le header ça fait quoi ?

          <?php
          $conn = mysqli_connect($servername, $username, $password, $dbname);
          // Check connection
          if (!$conn) {
              die("Connection failed: " . mysqli_connect_error());
          }
           
          $sql = "INSERT INTO `statistiques`(`TYPE`, `DATE`) VALUES (3,now())";
           
          if (mysqli_query($conn, $sql)) {
             echo 'COUCOU';
            //header("Location: https://www.youtube.com/Maf5TV");
          } else {
              echo "Error: " . $sql . "<br>" . mysqli_error($conn);
          }
           
          mysqli_close($conn);



          • Partager sur Facebook
          • Partager sur Twitter
            20 mai 2019 à 16:16:12

            christouphe a écrit:

            si tu commente le header ça fait quoi ?

            <?php
            $conn = mysqli_connect($servername, $username, $password, $dbname);
            // Check connection
            if (!$conn) {
                die("Connection failed: " . mysqli_connect_error());
            }
             
            $sql = "INSERT INTO `statistiques`(`TYPE`, `DATE`) VALUES (3,now())";
             
            if (mysqli_query($conn, $sql)) {
               echo 'COUCOU';
              //header("Location: https://www.youtube.com/Maf5TV");
            } else {
                echo "Error: " . $sql . "<br>" . mysqli_error($conn);
            }
             
            mysqli_close($conn);



            J'ai une page blanche avec écris "Coucou". Pas d'insertion dans la DB, SAUF, si je refresh la page ensuite



            • Partager sur Facebook
            • Partager sur Twitter
              20 mai 2019 à 16:22:54

              essayons différemment:

              <?php
              $conn = mysqli_connect($servername, $username, $password, $dbname);
              // Check connection
              if (!$conn) {
                  die("Connection failed: " . mysqli_connect_error());
              } else {
              	$sql = "INSERT INTO `statistiques`(`TYPE`, `DATE`) VALUES (3,now())";
              	if (! mysqli_query($conn, $sql)) {
              		echo "Error: " . $sql . "<br>" . mysqli_error($conn);
              		mysqli_close($conn);
              	} else {
              		header("Location: https://www.youtube.com/Maf5TV");
              	}
              }



              • Partager sur Facebook
              • Partager sur Twitter
                20 mai 2019 à 16:27:36

                christouphe a écrit:

                essayons différemment:

                <?php
                $conn = mysqli_connect($servername, $username, $password, $dbname);
                // Check connection
                if (!$conn) {
                    die("Connection failed: " . mysqli_connect_error());
                } else {
                	$sql = "INSERT INTO `statistiques`(`TYPE`, `DATE`) VALUES (3,now())";
                	if (! mysqli_query($conn, $sql)) {
                		echo "Error: " . $sql . "<br>" . mysqli_error($conn);
                		mysqli_close($conn);
                	} else {
                		header("Location: https://www.youtube.com/Maf5TV");
                	}
                }



                Résulat comme avant :/

                C'est vraiment bizarre mais sinon j'ai une alternative en tête avec un doute sur la faisabilité. Faire un refresh de la page. J'arrive sur page.php, je refresh 1 seule fois et après le code devrait se lancer.

                C'est barbare mais ca reste un portfolio pas la peine d'être au top du top. 

                • Partager sur Facebook
                • Partager sur Twitter
                  20 mai 2019 à 16:31:02

                  le problème ce'est que tu vas boucler, comment sauras -tu que c'est le premier coup pour ton refresh ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 mai 2019 à 16:35:27

                    christouphe a écrit:

                    le problème ce'est que tu vas boucler, comment sauras -tu que c'est le premier coup pour ton refresh ;)


                    J'avais en tête de passer une variable en get avant le refresh et ne pas refresh si il y a une variable mais le problème sera le même, on redirige vers la meme page sans reload donc mauvais :/
                    • Partager sur Facebook
                    • Partager sur Twitter
                      20 mai 2019 à 16:39:16

                      tu as essayé avec PDO au lieu de mysqli pour ce script en particulier ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 mai 2019 à 16:47:01

                        christouphe a écrit:

                        tu as essayé avec PDO au lieu de mysqli pour ce script en particulier ?


                        J'avais essayé PDO aussi mais je viens d'avoir la solution un peu par hasard. POST au lieu de GET

                        Je redirigé vers la page PHP ou je la lancait via angularJS en GET. Et j'ai essayer de le passer en POST et ca a fonctionné.

                          $scope.sendMailChannelIS = function(){
                            $http({
                               method: 'POST',
                               url: 'https://www.lucas-mafrica.com/php/clickChannelIs.php'
                            }).then(function (response) {
                                window.location.href =  "https://www.youtube.com/Maf5TV";
                            }, function (response) {
                               // code to execute in case of error
                            });
                          }

                        Je comprends pas vraiment pourquoi mais ca fonctionne ahah



                        • Partager sur Facebook
                        • Partager sur Twitter

                        Insertion DB après une redirection

                        × 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