Récupération de variables lorsque register_globals = off

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 702 fois - Téléchargée 33 fois

Contenu du snippet

Ce script n'a d'autre utilité que de garder un certain contrôle sur les variables que l'on veut récupérer lorsque le register_globals est à Off dans le php.ini (ce qui devrait être le cas de plus en plus).

Il nous évite d'insérer un bloc de ce genre :
if (isset($_GET['maVariable']) {
$maVariable = $_GET['maVariable'];
} else {
$maVariable = '';
}
pour chaque variable que l'on veut récupérer...

Source / Exemple :


<?php 
/** 

  • Récupération des variables.
  • - On définit $tab_variables, le tableau contenant le nom des variables que l'on veut récupérer.
  • - Ensuite on parcoure ce tableau et pour chaque valeur,
  • on teste si elle est définie dans $_POST, $_GET ou autre (à modifier soi-même)
  • - Si elle est définie, on crée une variable portant le nom du paramètre envoyé grâce
  • aux variables dynamiques ($$).
  • - Sinon, on fait autre chose, soit assigner une valeur par défaut, soit renvoyer sur une
  • page avec un message d'erreur par exemple.
  • /
$tab_variables = array('login', 'pass1', 'pass2', 'politesse', 'nom', 'prenom', 'email'); foreach ($tab_variables as $nom_variables) { if (isset($_POST[$nom_variables])) { $$nom_variables = $_POST[$nom_variables]; } else { $$nom_variables = ''; } } ?>

Conclusion :


Dans ce cas de figure, on ne peut récupérer qu'un type de variables à la fois (GET, POST, etc..) Mais à mon avis, cela autorise un meilleur contrôle de ce qui se passe. Si vous voulez récupérer indépendament les variables venant de POST, GET et SESSION, utilisez la superglobale REQUEST...

A voir également

Ajouter un commentaire

Commentaires

badrabbit
Messages postés
1
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
26 janvier 2005
-
D'accord avec toi galadriann, d'ailleurs, je le fais remarquer dans mon explication finale ;)

Mais il arrive que l'on veuille explicitement savoir si une variable vient de POST ou de GET :)
galadriann
Messages postés
87
Date d'inscription
mercredi 7 mai 2003
Statut
Membre
Dernière intervention
12 juin 2006
-
Interessant ... mais en utilisant la fonction $_REQUEST au lieu de $_POST ou $_GET, on evite de devoir tester l'un ou l'autre... sinon pas mal ...
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
Bravo, ça c'est une solution intelligente. Beaucoup de scripts globalisent bêtement et simplement le tableau entier, et du coup on perd tout l'avantage de l'auto_global à OFF, qui est tout de même un plus du point de vue de la sécurité et de la propreté.
Sinon, pour améliorer un petit peu, je te propose de créer un tableau de plus qui fait correspondre à chaque variable de $tab_variables une valeur par défaut (pour le cas ou isset() retournerait false). Ainsi, un peut associer une page par défaut pour la variable $_GET['page'] par exemple (accueil ou autre).

C'est tout ^^

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.