begin process at 2012 02 15 20:14:30
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > RÉCUPÉRATION DE VARIABLES LORSQUE REGISTER_GLOBALS = OFF

RÉCUPÉRATION DE VARIABLES LORSQUE REGISTER_GLOBALS = OFF


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Débutant Date de création :22/12/2004 Vu :4 018

Auteur : badrabbit

Ecrire un message privé
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...


 Sources de la même categorie

Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK
Source avec Zip Source avec une capture EL COYOTOS LIVRE D'OR PHP 5 par elcoyotos
COMPTEUR DE VISITE - FICHIER TXT - CODE MINIMAL par SuperChouquette

Commentaires et avis

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

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

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

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales