Problème de variables de session

Eléphanteau du PHP | 13 Messages

05 avr. 2007, 15:59

Bonjour
J'ai créé un site qui contient une fonction de login. Lors de ce login, si la personne entre le bon nom et mot de passe, une session_start(); commence avec une variable de session. Sur les autres pages, je récupère cette variable et si elle existe, c'est que l'utilisateur est logué et qu'il a le droit de voir la page qu'il a choisi.

Seulement j'ai un problème, avec IE (ca ne m'est pas arrivé avec Firefox) lorsque le login est effectué avec succès, dès que je change de page, il perd la variable de session :shock: :x

Jai fait quelques recherches qui m'ont fait remarquer que si je met le site dans "Mes sites de confiance" dans les paramètres de IE, je n'ai plus ce problème. Quelle technique devrais-je utiliser pour ne plus avoir ce problème, car sur les autres sites (comme ce forum par exemple) je n'ai pas besoin de le mettre dans les sites de confiance pour que ma session soit gardée... Il y'a donc une autre possibilité :roll:

Merci pour votre aide.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

05 avr. 2007, 16:23

Refuses-tu les cookies avec ton MSIE ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 13 Messages

05 avr. 2007, 16:37

Refuses-tu les cookies avec ton MSIE ?

Non, je ne les refuses ni avec Firefox, ni avec MSIE (Mais je précise que pour mon site, je n'utilise pas les cookies...)

ViPHP
ViPHP | 1996 Messages

05 avr. 2007, 17:31

Bien mais les sessions utilisent des cookies volatiles (non écris sur DD client) pour transmettre l'ID de session. Donc si pas de cookie, il faut transmettre l'ID par l'URL sinon pas de sessions...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

05 avr. 2007, 18:07

Bien mais les sessions utilisent des cookies volatiles (non écris sur DD client)
meuh :shock: ...
Je ne connaissais pas cette notion :-k

Il me semble bien que les cookies de sessions (ceux qui contiennent l'identifiant de la session et permettent d'informer le serveur quelle session est la notre) sont écrit sur le DD comme tout fichier temporaire. La durée de vie de ce cookie est liée au navigateur qui gère l'effacement seul mais c'est pas seulement en cache ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 1996 Messages

05 avr. 2007, 18:15

Bah tu me pose un doute mais je crois avoir lu ca dans "PHP 5 avancé", je vérifie...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Invité
Invité n'ayant pas de compte PHPfrance

05 avr. 2007, 18:26

Je viens de faire l'essai sur mon site perso et si pas de cookie = pas de session.

J'ai trouvé page 229 "dans PHP 5 avancé":
Lorsque vous faites appel à session_start(), PHP essaie de lire le contenu d'un cookie nommé par défaut PHPSESSID.
et j'ai trouvé ctte ressource dans le net (http://dev.ppan.net/sessions_PHP.php)
Pour commencer par ce qui a été ma première question, lorsque je me suis intéressé aux sessions, il s'agit d'un cookie côté serveur, contenu dans un répertoire ad hoc (généralement tmp). La gestion de ce cookie particulier, contenant toutes les variables que le script lui aura transmis, est déterminée selon une alternative : l'ID de la session en cours (constante SID http://us2.php.net/manual/fr/ref.sessio ... .idpassing) est contenue dans un cookie côté client ou, quand ce dernier a désactivé les cookies, dans l'URL (si l'option est implémentée dans le php.ini). La doc de www.php.net explique ces options.
Qu'en pense tu ?

ViPHP
ViPHP | 1996 Messages

05 avr. 2007, 18:28

C'est moi le dernier message... (tiens au fait pourquoi on n'a l'option connecté à chaque passage ne marche pas avec moi :roll: )
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

06 avr. 2007, 10:14

Puisque cela fonctionne avec IE, je suppose que tu as bien mis session_start() sur toutes les pages utilisant les sessions.

Par ailleurs, par défaut, les sessions utilisent des cookies, tu peux vérifier ce paramétrage en le regardant avec la fonction phpinfo() et le modifier en éditant le fichier php.ini. Mais si sur ton serveur tu ne peux pas toucher à php.ini, il va falloir passer le SID dans l'URL.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
ViPHP | 1996 Messages

06 avr. 2007, 11:19

Dites sainte mère... Cela voudrais dire que je n'ai pas dis de bêtises ? (cela serai étonnant... :lol: )
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 13 Messages

08 avr. 2007, 13:34

Puisque cela fonctionne avec IE, je suppose que tu as bien mis session_start() sur toutes les pages utilisant les sessions.

Par ailleurs, par défaut, les sessions utilisent des cookies, tu peux vérifier ce paramétrage en le regardant avec la fonction phpinfo() et le modifier en éditant le fichier php.ini. Mais si sur ton serveur tu ne peux pas toucher à php.ini, il va falloir passer le SID dans l'URL.
Oui, j'ai bel et bien mis le session_start sur toute les pages... Donc je pense que je vais passer le SID dans l'URL,car j'ai eu beaucoup de remarque comme quoi la session ne durait pas, puisque la plupart des gens utilisent IE... :?
En tout cas merci pour vos recherches. A bientôt

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

08 avr. 2007, 17:02

Si tu copies colles ici ce que donne ton phpinfo() à la rubrique session, on pourra t'aider plus amplement.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.