problème avec les variale $_session et les get

Petit nouveau ! | 1 Messages

08 nov. 2006, 14:25

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]

Eléphanteau du PHP | 38 Messages

08 nov. 2006, 14:31

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

ViPHP
ViPHP | 1961 Messages

08 nov. 2006, 14:34

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
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

08 nov. 2006, 14:38

- 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.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

dadi51 ca51
Invité n'ayant pas de compte PHPfrance

08 nov. 2006, 16:15

merci les gas pour toutes ces infos !!
je vais m'adapter !

A bientôt
David