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...
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'].
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 :