Aller au contenu

Récupération des variables


goldmen

Sujets conseillés

Bonjour

J'ètais sur un serveur sur lequel les variables PHP d'une page peuvent être récupérées sans les avoir déclarées, même chose sur XAMPP et au contaire de EasyPHP.

Maintenant, je viens de transferer mon site sur un autre serveur et mon script marche plus... apparement il faut tout dèclarer et cela risque de me prendre beaucoup de temps :(

Ya t-il une autre solution !

Merci

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Tu peux mettre dans ton PHP.ini la variable register_globals à ON mais ça n'est pas conseillé pour des raisons de sécurité.

(oops j'avais mal lu ton problème, un modo peut effacer mon message)

Modifié par KaRaK
Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Je suppose que tu parle des variable GET, POST et COOKIE, si c'est le cas c'est la création de ces variable est réalisée par une directive qui est appelé register_globals. Lorsque ce mode est activé, chaque variable définie soit par GET, POST ou COOKIE (et autres variables d'environnement et de serveur) est assignée automatiquement à une variable globale du même nom sous PHP. Lorsque ce mode est désactivé il faut utiliser les tableau de variables super-globals $_GET, $_POST et $_COOKIE ($_ENV, $_FILES, $_SERVER, etc.). Pour activer ce mode tu as plusieurs possibilités mais il n'est pas possible de l'activer avec la fonction ini_set. En revanche tu peux le faire depuis un fichier.htaccess si tu en a l'autorisation (sur le serveur HTTP, Apache généralement), voici la ligne a ajouter dans ton fichier.htaccess :

php_flag register_globals on

Attention: Il faut que tu sois conscient que cette directive, lorsqu'elle est activée, est potentiellement très dangereuse et peut créer des failles de sécurité si tu utilises des variables sans les déclarer auparavant par exemple. Tu vas réellement intérêt à remplacer ces variables par l'utilisation des tableaux super-globals du point de vue de la sécurité et également de l'évolutivité (PHP 6.0 n'implémentera plus cette directive).

P.S. : Il y a des chances pour que sur uns serveur mutualisé cette ligne dans le fichier .htaccess ne soit pas autorisé et provoque une erreur "500 Internal Error", si c'est le cas tu n'as pas d'autre possibilité que remplacer le nom de tes varaible... et sérieusement c'est un mal plus que nécessaire !

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Remplaces le nom de tes variables, c'est plus que nécessaire ;)

En attendant, tu as toujours une solution de secours :

foreach(array("_POST","_GET","_COOKIE") as $v)

foreach($$v as $k2 => $v2)

$$k2 = $v2;

Nico.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...