Probleme avec mes variables de sessions

Petit nouveau ! | 5 Messages

04 sept. 2007, 10:54

Bonjour,

Je rencontre un problème lorsque j'utilise des variables de sessions. J'ai réalisé un menu dans lequel j'utilise ces fameuses variables de sessions.
Chaque clic sur un lien de mon menu en arborescence enregistre une variable de session permettant de conserver l'état de l'arborescence du menu apres le chargement de la nouvelle page. tout fonctionne sauf lors de mon premier clic au demarrage du site, la variable de session s'enregistre bien car je peux la visualiser avec un echo $_SESSION['rubrique']; mais dès que je change de page elle s'efface comme une simple variable.... et si je recommence une seconde fois cela fonctionne... chaque premiere fois ça ne marche pas...

J'ai donc voulu faire des tests avec le code suivant :

Code : Tout sélectionner

<?php session_start(); if($_SERVER['REQUEST_URI'] == '/nomdomaine/index.php?page=1'){$_SESSION['test'] = 'enregistré';} echo $_SESSION['test']; // nomdomaine/index.php?page=1 étant la page d'accueil de mon site ?>
et là encore l'enregistrement fonctionne car le echo affiche bien la variable , mais si je clic sur un autre lien, ex : '/nomdomaine/index.php?page=2' la variable disparait, le echo n'affiche plus rien....?

Peut être n'ai-ja pas bien compris le fonctionnement des variables de sessions, si quelqu'un pouvait m'aider, merci d'avance de votre aide.

Eléphant du PHP | 291 Messages

04 sept. 2007, 11:00

bizarre, ça fonctionne correctement chez moi...
Ça vient peut être de ta configuration ?

Petit nouveau ! | 5 Messages

04 sept. 2007, 11:12

Bonjour,

oui en effet je me suis posé la question savoir si le probleme etait ailleurs que dans le code, mais je sais pas vraiment ou recgerder et surtout quoi regarder, j'ai bien un repertoire "sessions" a la racine de mon site.... le plus fou c'est que l'enregistrement fonctionne bien mais elle s'efface si je clic ailleur sur mon site, en gros ma variable de session se comporte comme une variable toute simple... j'y comprends rien....

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 sept. 2007, 13:52

As-tu bien un session_start() sur toutes les pages où tu fais appel aux sessions ?

Ton naviagteur autorise-t-il les cookies et le niveau de sécurité de celui-ci n'est il pas trop élevé ? (le comportement par défaut des session étant de laisser un id sur le poste client via un cookie pour savoir à quelle session l'associer)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 291 Messages

04 sept. 2007, 13:59

As-tu bien un session_start() sur toutes les pages où tu fais appel aux sessions ?
A mon avis oui vu que la session est crée pour index.php?page=1 et qu'il teste avec page.php?page=2 :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 sept. 2007, 14:10

Arf, au temps pour moi et bien vu ;)

Bon ben reste l'option cookies/sécurité :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 5 Messages

04 sept. 2007, 14:29

Merci de vous pencher sur mon probleme c'est cool, concernant le parametrage d'internet explorer je suis tout par defaut : securité > moyen-haut(par defaut) et confidentialité > moyenne mais pour info ce probleme ce produit sur tous les postes ou je test (deja une dizaine).... Et même probleme sur FF que sur IE....

Mammouth du PHP | 843 Messages

04 sept. 2007, 23:02

regarde dans ton PHP.ini ...

verifie deja que session.use_cookies = 1 ....

sinon pour voir, regarde tes cookies depuis FF par exemple et tu sera vite au jus si cela vient des cookies (par default il porte le nom de PHPSESSID) ;)

sinon tu peut aussi nous laisser un copier/coller du passage relatif au session de ton php.ini :)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Petit nouveau ! | 5 Messages

05 sept. 2007, 11:44

Je viens de verifier dans mon php.ini et j'ai bien session.use_cookies = 1

Sinon depuis FF mon cookie PHPSESSID est bien présent :(

Qu'entends tu par :


sinon tu peut aussi nous laisser un copier/coller du passage relatif au session de ton php.ini
J'ai pas bien saisi

Eléphant du PHP | 291 Messages

05 sept. 2007, 11:49

a mon il voulait que tu nous montrent les différentes lignes du fichier de configurations relatives aux sessions (temps de validité, nom, etc.)

Petit nouveau ! | 5 Messages

05 sept. 2007, 12:39

Ok alors voilà, pour info je bosse sur Xampp... si ça peut aider :?

Code : Tout sélectionner

[Session] session.save_handler = files session.save_path = "C:\xampp\tmp" session.use_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.cookie_domain = session.serialize_handler = php session.gc_probability = 1 session.gc_divisor = 100 session.gc_maxlifetime = 1440 session.bug_compat_42 = 1 session.bug_compat_warn = 1 session.referer_check = session.entropy_length = 0 session.entropy_file = session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 0 session.hash_function = 0 session.hash_bits_per_character = 4 url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
Je pense que c'est tout ce qui concerne les sessions dans mon php.ini