[PHP] Session détruite sans demande ?!

Bonjour,

J'utilise une session sur toute les pages de mon site mais il y a une page où, lorsqu'on y va, la session se détruit et je suis sûr de ne pas avoir mis de session_unset ou destroy... j'y comprend rien.

Si quelqu'un a une idée de la raison du problème, qu'il me fasse signe ! :)
Configuration: Windows Vista
Firefox 3.5.5

22 réponses

  1. ça marche pas le fichier .htaccess avec free ?!

    -> Dès que j'ai mis mon fichier .htaccess en ligne j'ai un message de free au lieu de ma page !
    "Erreur 500 - Erreur interne du serveur"

    même problème dans n'importe quel emplacement dans mes dossiers...
    1. Je ma demandais.. Existe-t-il un code pour forcer l'envoi de mail par la fonction mail(), étant hébergé par free ? Et ce, sans risque ?
      1. Tout est dit.
        Le .htaccess n'a rien à voir avec le PHP, et il est impossible de l'afficher via le navigateur donc pas besoin du HTML.
        Il ne peut donc contenir que les instructions qu'Apache doit suivre.
        1. .htaccess est un fichier utilisé par le serveur Apache, il n'est pas envoyé au navigateur du client donc il n'a pas besoin de contenir autre chose que les lignes configurations.
          Code du .htaccess :
          php_flag register_globals off
          1. heu... ça marche pas :(

            Voici ma page .htaccess

            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "
            http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
            <head>
            <title>Page .htaccess de mon Site</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            </head>
            <body>
            
            <?php php_flag register_globals off ?>
            
            </body>
            </html>
            1. Nan en fait je savais pas comment créer un fichier .htaccess mais j'ai lu qu'il suffisait de le nommer comme ça ^^
              1. Quand ton problème sera résolu, coche le bouton en haut.
                Si tu as encore un problème avec ça, alors continue la discution.
                1. Alors là, j'avoue que je comprends rien :
                  j'ai ré-essayé pour la 3ème fois et là, magie, c'est bien digival qu'est affiché ! o0

                  Je suis sûr d'avoir bien lu les autres fois avion-f16, pourtant.
                  Peut-être que mon navigateur a vidé le cache automatiquement ou un autre truc du genre...

                  Bref, je sais ce qu'il me reste à faire, merci encore
                  A++
                  1. Bizarre : je viens de tester sur mon serveur, et ça affiche bien "digival" avec register_globals sur On
                    1. Ben je suis désolé mais j'ai bien vérifié dans les infos php, dont voici la ligne :
                      " register_globals On On " (avec le design en moins ^^)

                      Et voici le script du test que tu m'as demandé de coder
                      <?php session_start(); ?>
                      
                      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "
                      http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
                      <head>
                      <title>Mon Site</title>
                      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                      </head>
                      <body>
                      
                      <?php
                      $_SESSION['user'] = 'avion-f16';
                      $user = 'digival';
                      echo $_SESSION['user'];
                      ?>
                      
                      </body>
                      </html>


                      Je confirme que c'est avion-f16 qui est affiché :s
                      1. Ce n'est pas possible.
                        Si register_globals est activé, alors ça t'affichera 'digival' sinon 'avion-f16'.
                        Et plus haut, tu me dis : “et register_globals est bien activé”
                        1. Au fait, j'ai testé ton script et c'est bien avion-f16 qui est affiché :s
                          1. C'est un fichier à créer toi-même sur Free (sur ton FTP) à la racine de ton site (là où tu as ta page index.php)
                            1. Ok super merci beaucoup !

                              Au fait quand tu dis
                              "Tu peux les désactiver en mettant la ligne "php_flag register_globals off" dans le .htaccess",
                              tu parles d'une page codée par moi-même ou d'un fichier de wamp ?
                              1. C'est les register_globales qui posent problème.
                                Teste ce script pour comprendre le problème :
                                <?php
                                session_start();
                                $_SESSION['user'] = 'avion-f16';
                                $user = 'digival';
                                echo $_SESSION['user'];
                                ?>
                                Tu verras apparaître 'digival' et pas 'avion-f16'.
                                Tu peux les désactiver en mettant la ligne "php_flag register_globals off" dans le .htaccess
                                1. Je suis hébergé par Free,
                                  La version actuelle de php est 4.4.3-dev et register_globals est bien activé...

                                  INFO : Il y a une semaine même pas ça marchait et je n'ai pas touché à mon script depuis que ça marchait
                                  1. Bizarre ...
                                    Es-tu hébergé chez 1&1 ?
                                    Qu'elle est la version de PHP (crées une page contenant "<?php phpinfo(); ?>") ?
                                    register_globals est-il activé (toujours avec phpinfo()) ?
                                    • 1
                                    • 2