Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme avec Include

TP espace membr de M. Nebra

Sujet résolu
    26 septembre 2016 à 16:31:23

    Bonjour à toutes et à tous,

    je suis sur le TP création d'un espace membre de Mathieu Nebra, et je bute sur un truc tout bête, mais pas moyen de trouver la solution.

    Je souhaite faire en sorte que la page d'accueil détecte la présence de cookies et connecte automatiquement le membre concerné.

    J'ai donc fait une page à part, qui permet de faire les vérifications nécessaires. La voici :

    <?
    
    if(isset($_COOKIE['pseudo_TP_espace_membre']) 
    	AND !empty($_COOKIE['pseudo_TP_espace_membre'])
    	AND isset($_COOKIE['co_auto_TP_espace_membre'])
    	AND $_COOKIE['co_auto_TP_espace_membre'] == 1
    	)
    	{
    		include_once('../Modele/connexion_sql.php');// connexion à la bdd
    
    		$req = $bdd->prepare('SELECT id, pseudo, pass FROM membres WHERE pseudo = :pseudo AND pass = :pass');
    		$req->execute(array(
    			'pseudo' => $_COOKIE['pseudo_TP_espace_membre'],
    			'pass' => $_COOKIE['pass_TP_espace_membre'],
    			));
    		$resultat = $req->fetch();
    
    		if($resultat)
    			{
    				session_start();
    				$_SESSION['pseudo'] = $_COOKIE['pseudo_TP_espace_membre'];
    				$_SESSION['id'] = $resultat['id'];
    				echo $_SESSION['pseudo']; // permet de tester que tout à fonctionné, et sera retiré dans la version finale				
    			}
    	}
    ?>

    J'ai testé cette page en long en large et en travers (var_dump, pas à pas...), elle fonctionne, et m'affiche même le pseudo au final, si je l'ouvre dans mon navigateur.

    Le problème survient lorsque je veux inclure cette page (modèle MVC oblige) dans la page d'accueil.

    Voici le code de la page (j'ai temporairement retiré tout le reste du code) :

    <?php include("Controleur/cookies_check.php");?>

    Difficile de faire plus concis non?

    Et bien lorsque j'ouvre cette fameuse page d'accueil, le pseudo, qui devrait confirmer que tout fonctionne, ne s'affiche pas. Comme si le lien entre les deux pages ne se faisait pas.

    Voici l'arborescence du site :

    Controleur
          ↳check_coockie.php
    Modele
          ↳connexion_sql.php
    index.php

    Voilà, si qqn a une idée, je le remercie par avance pour son aide.


    -
    Edité par -Yorick- 27 septembre 2016 à 8:47:54

    • Partager sur Facebook
    • Partager sur Twitter
      26 septembre 2016 à 16:39:57

      Hello

      Include n'est pas une fonction (même si ça fonctionne tel que tu l'as écrit) 

      la bonne formule : 

      <?php include 'Controleur/cookies_check.php'; ?>

      et ensuite la page que tu appelles dois commencer par 

      <?php

      -
      Edité par soluna 26 septembre 2016 à 16:51:07

      • Partager sur Facebook
      • Partager sur Twitter
      Zen à plein temps
        26 septembre 2016 à 16:53:13

        Bonjour soluna, et merci pour ton aide.

        Toutes mes excuses si je fais encore des confusions, je suis débutant.

        Bien vu pour le "php" qui était absent de la page "cookies_check.php". Je l'ai donc rajouté, et j'ai retiré les parenthèses sur la page d'accueil.

        Mais ça ne fonctionne toujours pas.

        A noter que j'utilise des include un peu partout ailleurs dans mon site et que cela fonctionne.

        Étonnant non?

        • Partager sur Facebook
        • Partager sur Twitter
          26 septembre 2016 à 17:06:39

          et si tu copie/colle le code de la page appelé à la place de ton include, ça fonctionne???

          Ps, je me considère aussi débutant... ou disons, un vieux débutant lol

          et sinon, si tu vires le ?> qui n'est pas utile pour la page appelé? voir même, de souvenir, recommandé de ne pas le mettre

          -
          Edité par soluna 26 septembre 2016 à 17:10:28

          • Partager sur Facebook
          • Partager sur Twitter
          Zen à plein temps
            26 septembre 2016 à 17:15:29

            Bonjour, essaie déjà de ne pas utiliser include_once, mais require.

            require 'tapage.php';

             ensuite pour récupérer tes données je te conseille ça

            $resultat = $req->fetch(PDO::FETCH_OBJ);

            je ne comprends pas trop d'où vient ton soucis. lorsque tu execute la page cookies_check.php qu'obtiens-tu?

            Bien a toi



            • Partager sur Facebook
            • Partager sur Twitter
              26 septembre 2016 à 17:23:56

              Merci à tout les deux pour votre aide.

              Si je copie/colle le code de cookie_check dans accueil, et bien ça ne marche pas.

              Il semble que le problème se situe là, donc.

              Car si j'enlève le ?> et si je remplace include par require, ça ne fonctionne pas.

              A noter que la page accueil se situe à la racine du site, et la page cookie_check dans un dossier nommé 'Controleur'. Peut-être cela a-t-il une incidence....?

              -
              Edité par -Yorick- 26 septembre 2016 à 17:25:04

              • Partager sur Facebook
              • Partager sur Twitter
                26 septembre 2016 à 17:31:34

                désolé, j'ai supprimé mon message qui était une énorme bêtise

                -
                Edité par soluna 26 septembre 2016 à 17:33:50

                • Partager sur Facebook
                • Partager sur Twitter
                Zen à plein temps
                  26 septembre 2016 à 17:32:26

                  si je lis ton code tel qu'il est, l'arbordescence de ton serveur est:

                  Controler
                        check_coockie.php
                  Modele
                        connexion_sql.php
                  index.php

                  tu confirmes?

                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 septembre 2016 à 19:41:36

                    est-ce que tu peux redonner le code avec les modifications que je t'ai dit d'apporter?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 septembre 2016 à 8:45:10

                      Revoici donc le code :

                      accueil.php :

                      <?php require 'Controleur/cookies_check.php'; ?>
                      

                      et cookies_check.php:

                      <?php
                      
                      if(isset($_COOKIE['pseudo_TP_espace_membre']) 
                      	AND !empty($_COOKIE['pseudo_TP_espace_membre'])
                      	AND isset($_COOKIE['co_auto_TP_espace_membre'])
                      	AND $_COOKIE['co_auto_TP_espace_membre'] == 1
                      	)
                      	{
                      		include_once('../Modele/connexion_sql.php');// connexion à la bdd
                      
                      		$req = $bdd->prepare('SELECT id, pseudo, pass FROM membres WHERE pseudo = :pseudo AND pass = :pass');
                      		$req->execute(array(
                      			'pseudo' => $_COOKIE['pseudo_TP_espace_membre'],
                      			'pass' => $_COOKIE['pass_TP_espace_membre'],
                      			));
                      		$resultat = $req->fetch(PDO::FETCH_OBJ);
                      
                      		if($resultat)
                      			{
                      				session_start();
                      				$_SESSION['pseudo'] = $_COOKIE['pseudo_TP_espace_membre'];
                      				$_SESSION['id'] = $resultat['id'];
                      				echo $_SESSION['pseudo']; // permet de tester que tout à fonctionné, et sera retiré dans la version finale				
                      			}
                      	}
                      ?>

                      A noter qu'avec

                      $resultat = $req->fetch(PDO::FETCH_OBJ);

                       la page cookie_check n'affiche plus de résultat, et la page d'accueil reste toujours blanche.





                      • Partager sur Facebook
                      • Partager sur Twitter
                        27 septembre 2016 à 10:37:28

                        Salut,

                        tu peux tester ça stp:

                        <?php
                         
                        if(isset($_COOKIE['pseudo_TP_espace_membre']) 
                            AND !empty($_COOKIE['pseudo_TP_espace_membre'])
                            AND isset($_COOKIE['co_auto_TP_espace_membre'])
                            AND $_COOKIE['co_auto_TP_espace_membre'] == 1
                            )
                            {
                                include_once('../Modele/connexion_sql.php');// connexion à la bdd
                         
                                $req = $bdd->prepare('SELECT id, pseudo, pass FROM membres WHERE pseudo = :pseudo AND pass = :pass');
                                $req->execute(array(
                                    'pseudo' => $_COOKIE['pseudo_TP_espace_membre'],
                                    'pass' => $_COOKIE['pass_TP_espace_membre'],
                                    ));
                                $resultat = $req->fetch(PDO::FETCH_OBJ);
                         
                                if($resultat)
                                    {
                                        session_start();
                                        $_SESSION['pseudo'] = $_COOKIE['pseudo_TP_espace_membre'];
                                        $_SESSION['id'] = $resultat['id'];
                                        echo $_SESSION['pseudo']; // permet de tester que tout à fonctionné, et sera retiré dans la version finale              
                                    }
                            } else { echo '<br><h1>PAS DE COOKIE</h1>';}
                        ?>

                        et dit nous si le else s'affiche ;)

                        ++

                        -
                        Edité par christouphe 27 septembre 2016 à 10:38:01

                        • Partager sur Facebook
                        • Partager sur Twitter
                          27 septembre 2016 à 11:11:29

                          Ok problème résolu, ça venait de
                          include('../Modele/connexion_sql.php');// connexion à la bdd

                           En fait il fallait écrire

                          include('Modele/connexion_sql.php');// connexion à la bdd

                          Merci à tous pour votre aide.



                          • Partager sur Facebook
                          • Partager sur Twitter
                            27 septembre 2016 à 11:25:04

                            C'est pour ça que j'utilise les chemin absolu chez moi :p généré dynamiquement ;)

                            ++

                            • Partager sur Facebook
                            • Partager sur Twitter
                              27 septembre 2016 à 13:55:54

                              content que tu ais trouvé, j'allais justement te dire de changer le path pcq en faisant un include, tu as remonté ta page a la racine.

                              Sinon un conseil, fais un

                              error_reporting(E_ALL);

                              en haut de ta page

                              et un display_errors : E_ALL;

                              dans ton php.ini

                              les messages d'erreur nous aident ;)

                              A bientôt

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Probleme avec Include

                              × 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