Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RÉCUPÉRATION DE VARIABLES LORSQUE REGISTER_GLOBALS = OFF


Information sur la source

Catégorie :Divers Niveau : Débutant Date de création : 22/12/2004 Vu : 3 416

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

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

  • <?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 = '';
  • }
  • }
  • ?>
<?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...
 

Commentaires et avis

signaler à un administrateur
Commentaire de Kirua le 23/12/2004 14:43:16

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 ^^

signaler à un administrateur
Commentaire de galadriann le 23/12/2004 19:49:34

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 ...

signaler à un administrateur
Commentaire de badrabbit le 26/01/2005 14:56:11

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 :)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.