Page 1 sur 1

problème avec les variale $_session et les get

Posté : 08 nov. 2006, 14:25
par dadi51
Bonjour

je viens de changer de serveur red hat vers debian. J'ai installer php5.
avant lorsque je voulais récupérer mes variable session ou get je faisais ceci :
$_session['mavariable'] = "test";
puis
echo $mavariable;
et celà marchait !
même pour les get, par exemple :
index.php?mavariable=test
puis echo $mavariable;
et celà marchait aussi.

maintenant sur ma nouvelle machine ça ne passe plus! je suis obliger de faire ceci :
echo $_session['mavariable'];
echo $_get['mavariable'];

Est ce qu'il n'y aurait pas quelque chose à modifier sur mon serveur pour que la compatibiliter revienne sans problème ? dans le php.ini ? httpd.conf ??

Merci de votre aide

David
[email protected]

Posté : 08 nov. 2006, 14:31
par RilaX
As tu pensé a regardé dans le forum avant de poser ta question ?
regarde la -> http://www.phpfrance.com/forums/voir_sujet-24044.php

En gros, pour t'eviter un clic de souris, tu as au moins 2 choix :
- soit tu modifie ton php.ini et tu met register_globals sur ON, mais tu te retrouve avec un gros trou de sécurité, donc a n'utiliser qu'en local;
- soit au début de tes pages php tu met extract($_GET,EXTR_OVERWRITE); , ou extract($_SESSION,EXTR_OVERWRITE); , ou les 2.

J'utilise personnelement la 2eme solution

Posté : 08 nov. 2006, 14:34
par Ajoloca
Bonjour,

Tu peux faire en sorte que celà fonctionne comme avant mais je te le déconseille fortement (en PHP 6 ça ne sera plus possible) il vaut mieux adapter ton code comme ceci
$_session['mavariable'] = "test";
$mavariable = $_session['mavariable'];
La même chose pour les $_GET[] et $_POST[]

Sinon la solution pour revenir
a) Dans 'php.ini' changer la directiove 'register_globals' à 'On'
b) Bans un fichier .htaccess

Code : Tout sélectionner

php_flag register_globals On
Je me répéte mais adapte ton code

Posté : 08 nov. 2006, 14:38
par zeus
- soit tu modifie ton php.ini et tu met register_globals sur ON, mais tu te retrouve avec un gros trou de sécurité, donc a n'utiliser qu'en local;
Attention, il est très déconseillé d'utiliser le REGISTER_GLOBAL, même en local, pour plusieurs raison :
- Il ne s'agit pas que d'une faille de sécurité mais surtout que si tu as des variables GET et POST qui ont le même nom, elles seront écrasée, que tu risque de modifier un POST/GET/SESSION/SERVER juste en instanciant une variable dont le nom est mal choisir
- Le code que tu développes en local est destiné à passer en prod un jour ;)
- Afin d'éviter des soucis de passage en prod dus à la différence de configuration entre le developpement et le site en production, il est très conseillé d'avoir des configurations rigoureusement identiques.

merci

Posté : 08 nov. 2006, 16:15
par dadi51 ca51
merci les gas pour toutes ces infos !!
je vais m'adapter !

A bientôt
David