Page 1 sur 1

$messager = $_SESSION['messager'] ?

Posté : 28 juin 2007, 11:59
par orgerix
Bonjour, je suis hébergé chez free, et je viens de trouver un bug dans mon script... En effet, j'ai un variable de session $_SESSION['messager'] et j'utilise dans une page une variable $messager et je me suis rendu compte que celle ci ecrasait ma variable de session. Comment est ce possible ?

Posté : 28 juin 2007, 12:06
par Ryle
Ce n'est pas un bug à priori, mais un conflit du fait que la directive register_global soit à on chez free... du coup les modifications effectuées sur la variable $messager sont également prises en compte pour $_SESSION['messager'] :)

Posté : 28 juin 2007, 12:06
par zeus
si le register_global est activé, et il me semble qu'il l'est sur free, toutes variables de $_SESSION est initialisée comme variable locale.

En clair, ça signifie que si tu as $_SESSION['foo'], la variable $foo est automatiquement initialisée avec le contenu de $_SESSION['foo']

Posté : 28 juin 2007, 12:13
par orgerix
Et l'inverse est vrai ?

Car moi, c'est lors de l'initialisation de $messager que la variable $_session['messager'] est réécrite (en, même pas puis qu'elle est simplement ecrasé...)

Posté : 28 juin 2007, 12:27
par Ryle
Et l'inverse est vrai. C'est pas seulement une initialisation, c'est une correlation entre les deux variables qui pointent je pense vers la même valeur... En gros si elles ne sont pas liées (et ca n'a donc pas l'air d'être le cas :)), tu n'as plus qu'à en renommer une des deux :)

Posté : 28 juin 2007, 12:37
par orgerix
C'est ce que j'ai fait.

En tout cas, cet épisode m'a enlevé tout envie d'utiliser register_globals, mais bon,n j'ai aps le choix...

Sinon, une autre question. Est ce que $_POST['bidul'] ecrase $_SESSION['bidul'] ?