Partage
  • Partager sur Facebook
  • Partager sur Twitter

Session PHP qui ne marche pas

elle ne se transmet pas de pages en pages

    20 janvier 2006 à 21:40:35

    Bonjour !
    Sur mon site la session ne se transmet pas.
    En fait elle ne marche pas sur les autres pages que celle ou on est loggé. Par exemple il y a un include dans cette meme page et dans la page qui includée, je test si la session est activée ou pas (avec une variable pseudo : si elle est présente c'est bon, sinon c'est que la session n'est pas active), et bin ca ne marche pas.
    Alors que dans la page meme, sans le biais d'un include, je fais le meme test, et la ca marche.
    Alors pourquoi ca ne marche pas svp?
    Merci !
    • Partager sur Facebook
    • Partager sur Twitter
      21 janvier 2006 à 16:53:31

      Bonjour, c'est étrange, j'ai fait le test :

      <?php
      session_start();
      $_SESSION['test'] = 'Je suis une variable de session :)';
      include('verif_session.php');
      ?>

      Et verif_session.php contient :
      <?php
      if (isset($_SESSION['test'])) echo $_SESSION['test']; else echo 'rhozut...';
      ?>

      Résultat : ça ne m'affiche pas "rhozut..." :p


      On trouverait peut-être ce qui cloche si tu nous donnait le code de ta page incluse :)
      • Partager sur Facebook
      • Partager sur Twitter
        21 janvier 2006 à 16:58:23

        j'ai moi ossi un probléme avec les session et je suis sous lycos svp aisez moi: ici
        • Partager sur Facebook
        • Partager sur Twitter
          21 janvier 2006 à 18:08:14

          Tu as bien mis un session_start() sur TOUTES les pages ou tu utilises les sessions ?
          • Partager sur Facebook
          • Partager sur Twitter
            29 janvier 2006 à 9:29:38

            Mais thelittlegui tu as fait ce test ou?

            J'ai pas mis la session start sur la page include, je l'ai mis que sur la page qui inclue.
            Voilà le code de la page include :
            <!-- début d'une rubrique -->
                                            <div class="partie_droite">
                                    <h1>Mini T'
            chat</h1>
                                    <div class="partie_droite_txt">
                                            <?php
                                            include ("connect.php");
                                            include ("affichage_tchat.php");
                                            if (isset($_SESSION['pseudo']))
                                            {
                                            echo "<form method=\"post\" action=\"http://www.webown.net/post_tchat.php\">
            <p>pseudo<br />
            <input type=\"text\" size=\"15\" maxlength=\"15\" name=\"pseudo\" />
            <br />message
            <br /><input type=\"text\" size=\"15\" maxlength=\"150\" name=\"message\" />
            <br /><input type=\"submit\" name=\"poster\" value=\"envoyer\" />
            </p>
            </form>"
            ;
            }
            else
            {
            echo "<p>---<br />Vous devez être membre pour pouvoir poster.</p>";
            }
            ?>


            Et en fait en début de page j'include la page header.php :

            <?php
            include ("http://www.webown.net/header.php");
            ?>


            Et header.php contient ca :
            <?php
            session_start();
            ?>

            Et puis après tout le header (du htlm).


            Et en fait dans la page ou on est loggé (http://www.webown.net/membre/zone/) ca marche le test. Mais quand on change de page, ca marche plus.
            Vous pouvez vous créer un compte a partir du forum (http://forum.webown.net) pour essayer, les comptes membre du site sont les mêmes que ceux du forum (on va piocher toutes les données dans les tables de pbpbb).



            Merci de votre aide !
            • Partager sur Facebook
            • Partager sur Twitter
              29 janvier 2006 à 9:58:21

              les superglobales $_SESSION ne marchent qu'après un reload de page ;) (la page suivante quoi ^^). C'est pour ça que sur beaucoup de sites quand on se connecte on a un "Vous allez être redirigé"
              • Partager sur Facebook
              • Partager sur Twitter
                29 janvier 2006 à 10:47:25

                Fais :
                <?php
                include ("header.php");
                ?>

                Car sinon ca te mets unereeur au bout d'un moment ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  29 janvier 2006 à 11:08:59

                  Citation : Tibo

                  les superglobales $_SESSION ne marchent qu'après un reload de page ;) (la page suivante quoi ^^). C'est pour ça que sur beaucoup de sites quand on se connecte on a un "Vous allez être redirigé"



                  bizare... moi j'ai scripté un espace membre et bien quand j'utilise les $_SESSION au lieu des $_COOKIE et bien ca le fait instantanément... je clic sur Se connecter et sa se connecte sans redirection... Sinon sur lycos ca doit être normal... lycos à toujours été pourrave... j'en connais les conséquences j'était chez eux avant :(

                  je te conseilles www.fur4x-hebergement.net c'est super ta 50 Mo au départ et si t'est prêt a dépasser tes 50 Mo tu pux leur envoyer un MP pour passer a 250 Mo... :p

                  Ils acceptent pleins de mods et tu peux même leur demander si c'est possible d'activer tel ou tel mod chez toi... Leur bande passante est assez rapide et ils acceptent le python, le php, mysql, postreSQL, et il y a le mod_rewrite (le fait que news.php?page=3 se transforme en news-page-3.html par éxemple) pré-intégré a leur offre.

                  et aussi : l'inscription et l'utilisation du compte est GRATUIT ! :o

                  De plus si t'as un problème chez eux tu post sur le forum ton problème, soit l'admin te résoud le problème dans le forum soit il te donne son adresse msn... :)

                  PS : Attend l'ouverture des inscriptions... je sais pas si c'est encore ouvert...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 janvier 2006 à 12:05:13

                    Merci mais j'ai payé chez Plexiweb lol.

                    Minishlink, suis vraiment obligé de faire ca?
                    Car les fichiers sont dasn des dossiers différents, et je préférerait avoir qu'un seul header pour toutes les pages, car je modifie régulièrement des choses dedans.

                    Et sinon pour le rechargement de la page : il y en a un, testez. Il y a une redirection.
                    Mais après la redirection ca marche, c'est dès qu'on change de page ca ne marche plus.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      10 février 2006 à 17:01:09

                      question idiote mais ca m'est déjà arrivé :

                      est-ce que la page après laquelle tu a fait la redirection t'as mis un session_destroy(); a la fin ? (car on pourrai dire que session_start(); c'est comme mysql_connect(); et que session_destroy(); c'est comme mysql_close(); mais pour les session... alors que c'est faux o_O )


                      car comme le dit les cours de M@tteo21, session_destroy(); c'est pr effacer la session...

                      ca a l'air idiot comme ca, mais ca arrive a pleins de monde ce genre de choses

                      ou alors un

                      if(IsSet($_GET['deconnexion'])) // Si la page est mapage.php?deconnexion
                      {
                           session_destroy(); // On efface la session
                      }


                      mal fait et qui s'éxécute quand même...

                      ++ ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 février 2006 à 2:24:03

                        Citation : Tificombo


                        Et header.php contient ca :

                        <?php
                        session_start();
                        ?>


                        Et puis après tout le header (du htlm).


                        Est-ce que dans ta page header.php, tu a bien mis: $_SESSION['pseudo'] = 'valeure'; ?
                        Si non, c'est normal que la variable n'existe pas. ^^
                        • Partager sur Facebook
                        • Partager sur Twitter
                          19 février 2006 à 6:08:21

                          Peut-être que les commandes session sont tout simplement pas activer dans ton fichier de configuration de PHP (php.ini)... Sinon je voix vraiment pas, désoler!
                          • Partager sur Facebook
                          • Partager sur Twitter
                            19 février 2006 à 8:39:51

                            Oui j'ai bien activé la variable pseudo.
                            C'est juste une fois que je change de page.
                            CrazyPhil, à mon avis non.
                            Mais de toute manière la on va refaire un design moins compliqué, il y aura moins d'include et tout ca, ca marchera peut etre mieux.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              19 février 2006 à 12:38:54

                              Euh désolé suis un gros Zéro (1er post) mais j'ai essayé de répondre à ton problème Tificombo. Pour moi ce n'est pas un problème d'include mais un problème de structure conditionnelle. J'ai essayé en local avec ton code et j'ai eu le même pb que toi. Alors j'ai reposé le code du include :

                              <?php
                              if (isset($_SESSION['test']))
                                      {
                                      echo $_SESSION['test'];
                                      }
                                      else
                                      {
                                      echo 'rhozut...';
                                      }
                              ?>

                              Et là chez moi ça marche !!!! Alors j'espère que c'était bien là ton problème...

                              Euh au cas où j'aurai répondu à côté de la plaque, j'aurai une autre question : es-tu sûr que
                              - L'include de ton header.php est bien à la première ligne de ton code (ta page initiale qui inclut)
                              - Dans ton header.php, session_start() est aussi en première ligne de code (ta page includée)

                              ==>Parce que la règle que j'ai retenue ce que RIEN ne doit précéder une session_start()
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Session PHP qui ne marche pas

                              × 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