Donc je fais de la maintenance sur un site PHP qui utilise des variables $_SESSION
. J'ai commencé à voir un comportement très très bizarre et après des heures de débogage je me suis juste rendu compte de cela. À titre d'exemple, disons que j'ai une séance configuration variables comme ceci:PHP Session Raccourcis de variable?
$_SESSION['user']['id'] = 123;
$_SESSION['user']['firstname'] = 'John';
$_SESSION['user']['lastname'] = 'Doe';
À un moment donné dans un script, un appel à une table MySQL est faite en utilisant certaines classes Zend:
$sql = "SELECT whatever FROM table";
$user = $db->fetchRow($sql);
maintenant voici où l'étrangeté commence ... Après cet appel de base de données est faite, ma valeur de tableau $_SESSION['user']
est tout à coup changé pour être l'objet qui est récupéré de l'appel de base de données ...
Fondamentalement: $_SESSION['user']
est maintenant le même que l'objet qui a été récupéré ed en utilisant la méthode DB fetchRow supposée être stockée dans la variable $user
. Je n'ai jamais vu ça auparavant. La seule chose que je peux comprendre est que le nom de la variable $user
est le même que le nom de la clé du tableau $_SESSION['user']
, il agit comme un raccourci ou quelque chose comme ça.
Est-ce une sorte de raccourcis de session PHP étranges dont je n'ai jamais entendu parler auparavant? Sur une note de côté, je sais que l'accès direct $_SESSION
n'est pas la meilleure pratique. Je n'ai pas construit ce site web. Mon travail consiste simplement à réparer certaines choses et à ajouter quelques fonctionnalités.
MISE À JOUR: Effectivement, register_globals est activé. Merci pour l'aide rapide les gars. Pas étonnant que je voyais un comportement aussi bizarre.