Nom objet/session = conflit ?

lux
Eléphant du PHP | 372 Messages

10 nov. 2008, 20:30

Hello.

J'ai rencontré un bug étrange, qui n'arrive que chez infomaniak :

Si je définis une $_SESSION['user'];
Si je définis ensuite un objet $user = new UserCompte();
Que je fais un print_r($_SESSION['user']); j'obtiens :

Code : Tout sélectionner

userCompte Object ( ... )
En sachant que ma fonction Usercompte ne fait rien, elle est vide. Et donc dans la session se retrouvent les variables et constantes de l'objet ... Changer le nom de la session en $_SESSION['blabla']; résous le problème. Il y a comme qui dirait un conflit entre les noms de session et le nom des objets. Ça marche sans problème sur 4 configs serveur différentes, sauf chez infomaniak.

C'est normal ou pas ? :P

Mammouth du PHP | 693 Messages

10 nov. 2008, 20:34

Les variables globales doivent être On.

Dans ce cas, $_SESSION[varaibale'] et $variable sont des alias, ainsi que $_POST['variable'], $_GET['variable'].

Essaye
 set_ini('register_globals','off');

lux
Eléphant du PHP | 372 Messages

10 nov. 2008, 20:46

Alors, j'ai vérifié dans le phpinfo, elles sont à On.
ini_set('register_globals','off');
Ça ne change rien ... (et si je fais un phpinfo par derrière, ça n'a pas changé la valeur). Donc possible qu'on ne puisse pas changer cette valeur.

EDIT : avec un htacces on peut le changer :

Code : Tout sélectionner

php_value register_globals "0"
Et ça résouds le problème.
C'est con que j'y ai pas pensé avant. :cry:

ViPHP
fab
ViPHP | 2657 Messages

11 nov. 2008, 15:10

Et tu n'as pas accès à la configuration de php ? ( php.ini )
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

lux
Eléphant du PHP | 372 Messages

11 nov. 2008, 15:34

Chez infomaniak non. Que certains truc dans un .htaccess.