CrazyCat Programming Factory
rendre internet plus accessible
 

Contourner le register_globals à off

Logo phpAfin de ne pas avoir à redéclarer vos variables en faisant par exemple $nom = $_POST['nom']; ou pour éviter d'utiliser des variables de type $_POST['email'] dans votre code, voici deux lignes qui permettent de le faire automatiquement.
Placées en tête de votre script, elle recréent les variables envoyées par un post ou un get.
<?
foreach ($_POST as $key => $value) $$key = $value;
foreach ($_GET as $key => $value) $$key = $value;
?>

Une version simplifiée permet de traiter les deux méthodes d'envoit en une seule boucle:
<?
foreach ($_REQUEST as $key => $value) {
   $$key = $value;
}
?>

L'inconvénient de cette méthode est qu'elle utilise les priorités de traitement par défaut, qui sont Environment, GET, POST, Cookie, Server.
Cela veut donc dire que si vous envoyez le même paramètre en GET et en POST, c'est celui envoyé en POST qui sera finalement utilisé dans votre script, ce qui est génant si vous voulez justement pouvoir forcer des valeurs (pour des tests) en rajoutant les variables dans l'url.

Cela fonctionne aussi pour les fichiers uploadés, les cookies et les sessions en utilisant les tableaux globaux $_FILES, $_COOKIE et $_SESSION.

©2006-2019 Geek Zone | eggdrop.fr | zeolia.net