Aller au contenu

A propos de la configuration


John_attend

Sujets conseillés

Bonjour,

J'expose mon problème : afin de créer un sript qui soit compatbile et qui s'adapte selon la configuration du serveur, j'ai créé ce script (à placer en premier) au cas ou l'option register globals serait à ON (je veux qu'elle soit à OFF).

<?php

foreach($_REQUEST as $key => $val) {
${$key} = NULL;
}

?>

Ceci afin de supprimer les variable $var pour une $_REQUEST['var'] donnée.

Toutefois, je me pose une petite question à propos des register_globals. Celles ci ont un ordre de priorité... En effet, quand celles si sont à ON, si on envoit une variable par POST qui se nomme var et une variable par GET qui se nomme var également, il ne pourra pas y avoir deux $var générée, l'un des supergoblals aura la priorité sur l'autre.

Il en est de même pour $_REQUEST...

Mais ma question est la suivante : L'ordre de priorité pour les registers_blogals est il le même que pour $_REQUEST ?

Car si oui, mon script serait bon, sinon il faudrait que je fasse de même pour chaque Superglobals...

Merci d'avance de vos réponses.

Lien vers le commentaire
Partager sur d’autres sites

Ton idée serait que les variables passées en REQUEST (par exemple en GET) soient effacées lorsqu'elles sont passées par l'url. C'est une bonne idée, sauf que.. tu ne sais pas vraiment ce qui est passé par l'url. L'utilisateur pourrait rentrer une variable que tu utilises dans ton script, et celle-ci serait effacée sans discernement :/

Pour infos, si tu veux controler la position d'un register_globals, tu as accès à ini_set, ainsi :

ini_set('register_globals', 0);

Anonymus.

Lien vers le commentaire
Partager sur d’autres sites

Jeromnimo > Merci. Je vois que l'ordre est EGPCS pour $_REQUEST et apparemment en regardant un peu plus bas c'est le même ordre pour register_globals. Je ferais des tests plus profondémment pour m'en assurer.

Ton idée serait que les variables passées en REQUEST (par exemple en GET) soient effacées lorsqu'elles sont passées par l'url. C'est une bonne idée, sauf que.. tu ne sais pas vraiment ce qui est passé par l'url. L'utilisateur pourrait rentrer une variable que tu utilises dans ton script, et celle-ci serait effacée sans discernement :/

Ce n'est pas vraiment ça en fait, je supprime toutes les $var pour une $_REQUEST[var] donnée, le tableau $_REQUEST lui reste intact. Sinon j'aurais tout simplement fait $_GET = $_POST = $_COOKIE = $_ENV = $_SERVER = NULL;

ini_set('register_globals', 0);

Malheureusement ce serait trop simple... En modifiant les paramètres de register_globals à l'interieur du script il est déjà trop tard car une fois que l'execution commence toutes les variables sont déjà définies... C'est pour ça que je me vois obligé de trouver une autre méthode :-\

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

, je supprime toutes les $var pour une $_REQUEST[var] donnée, le tableau $_REQUEST lui reste intact.

Je ne suis pas sûr de comprendre :/

Si tu ne te sers pas de $var, tu n'as pas besoin de l'effacer !?

Mon idée, par rapport à cela (et ce que j'en ai compris, mais.. je n'en suis déjà pas trop sûr : ) Dans le cas d'un formulaire d'inscription. Tu dois recevoir les infos par POST (enfin. normalement). Là, tu effaces $login et $pass, pour te servir de $REQUEST['login'] et $REQUEST['pass']. Mais si tu ne te sers pas de $login et $pass, ca ne sert à rien de les effacer ?

( m'enfin bon.. laisses tomber, c'est dimanche soir, j'suis fatigué :D )

Lien vers le commentaire
Partager sur d’autres sites

Oui c'est ça, mais je me complique pas trop à définir chaque variable... En fait le script sert à faire comme si REGISTER_GLOBALS était à OFF (alors qu'en fait il est à ON).

En fait la méthode que tu me conseille c'est surement l'initialisation ?

Mais je préfère ne pas trop me prendre la tête à initialiser chaque variable (un oubli est si vite arrivé).

Modifié par John_attend
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...