Voilà voilà, c'est la 2ème fois que je suis confronté à ce problème, et j'aimerai bien en savoir un peu plus la dessus :
Je développe généralement sous windows, avec EasyPHP avant de tranférer mes scripts sur les serveurs Linux. Dans mon code, je déclare au moment du login de l'utilisateur une variable de session $_SESSION['id_user'] qui contiendra tout au long de la navigation d'identifiant de l'utilisateur.
Tout marche très bien avec EasyPHP. Seulement voilà, passé sur certains serveurs Linux (et pas sur tous), il se trouve qu'il y a un conflit entre $_SESSION['id_user'] et la variables privée $id_user (en l'occurence reçue par un $_POST['i_id_user'] => c'est pas de la que vient le problème).
Résultat, sitot $id_user initialisé, $_SESSION['id_user'] saut...
Résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 echo '-'.$_SESSION['id_user'].'-<br>'; $id_user = $_POST['i_id_user']; echo '-'.$_SESSION['id_user'].'-<br>';
Je ne peut donc pas sur certain serveur déclarer de variables dont le nom pourrait déjà être utilisé dans $_SESSION...-4-
--
Bon, le problème n'en est pas vraiment un, puisque sachant d'ou vient le probleme, j'ai juste du remplacer tous mes $id_user de la page par des $id_usr... Simplement, je voudrais comprendre...
Comment une variable privée peut elle avoir une influence sur le contenu d'une case d'un tableau superglobal ($_SESSION) ?
Que disent les spécifications du PHP à ce propos ? Est-ce un bug ou est-ce normal ?
Partager