Variable de session modifiée sans raison

Signaler
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012
-
eilijah
Messages postés
1
Date d'inscription
samedi 12 septembre 2009
Statut
Membre
Dernière intervention
12 novembre 2009
-
Bonjour,

Je rencontre un problème incompréhensible sur les sessions PHP.
Une de mes variables est modifiée au cours de l'exécution d'un script alors que je n'y accède ni en lecture ni en écriture.

Voici le scénario :
1. Connexion au site (enregistrement de la variable $_SESSION['id'] = 123)
2. Déconnexion du site (session_destroy();)
3. Connexion au site avec un autre identifiant ($_SESSION['id'] = 789)
4. Exécution du script suivant :

session_start();
echo "ID : ".$_SESSION['id']."
";
/*
* Traitements divers en base de données sans aucun appel à $_SESSION
*/
echo "ID : ".$_SESSION['id']."
";

5. Le script affiche :

ID : 789
ID : 123

Comment cette variable peut-elle être modifiée "toute seule" ?
On se retrouve "connecté" avec le compte d'un autre utilisateur, c'est très embêtant...

Merci d'avance pour votre aide.

Tibabou

2 réponses

Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012

J'ai identifié la cause du problème, je l'ai contourné, mais je cherche toujours l'explication.

J'utilise une variable '$id' (donc ayant le même "nom" que dans $_SESSION['id']).
Dès la modification de $id, la variable de session change en même temps.
Je précise qu'à aucun moment je ne fais de : $id = $_SESSION['id'].

Si je renomme $id en $bizarre, ça fonctionne.

Quelqu'un a une explication ?

Tibabou
Messages postés
1
Date d'inscription
samedi 12 septembre 2009
Statut
Membre
Dernière intervention
12 novembre 2009

Salut,

j'ai eut le meme probleme, en fait cela venait pour moi du fait que register_globals etait configuré sur "on". Donc pour eviter ce probleme et d'autre lié a register_globals, tu peux mettre un .htaccess avec :
php_flag register_globals off