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 !

DÉCLARATION DE VARIABLE DYNAMIQUEMENT (REGISTER_GLOBAL)


Information sur la source

Catégorie :Astuces Niveau : Initié Date de création : 28/01/2004 Date de mise à jour : 29/01/2004 11:18:26 Vu : 2 305

Note :
3,25 / 10 - par 4 personnes
3,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Si vous développez votre site chez vous et que vous avez l'habitude de récuperer vos variable directement sans allé la chercher dans le table $_POST[].
par exemple votre formulaire contient les champs : "nom" et "prenom"
pour y acceder soit vous faites $_POST['nom'] et $_POST['prenom']
si par contre vous voulez les recuperer directement dans une variable $nom et $prenom il vous faut configurer votre serveur php en mettant register_global=on
par contre si vous ne pouvez pas modifier la conf alors cette source pourra vous etre utile !!
 

Source

  • <?php
  • // le register global
  • // on limite la déclaration des variables à celle qui sont dans le tableau
  • $var_get = array("var1","var2","var3","var4");
  • // pour le get
  • foreach($_GET as $key => $val)
  • if ( in_array($key, $var_get))
  • ${$key} = $val;
  • $var_post = array("var1","var2","var3","var4");
  • // pour le post
  • foreach($_POST as $key => $val)
  • if ( in_array($key, $var_post))
  • ${$key} = $val;
  • ?>
<?php
// le register global
// on limite la déclaration des variables à celle qui sont dans le tableau

$var_get = array("var1","var2","var3","var4");
// pour le get
foreach($_GET as $key => $val)
     if ( in_array($key, $var_get))
         ${$key} = $val;

$var_post = array("var1","var2","var3","var4");

// pour le post
foreach($_POST as $key => $val)
     if ( in_array($key, $var_post))
        ${$key} = $val;

?>

Conclusion

Cette source vous permet de voir comment allouer des variables dynamiquement. J'avoue que l'on en a pas tout les jours grand besoin mais on sait jamais.
 

Commentaires et avis

signaler à un administrateur
Commentaire de Kirua le 29/01/2004 01:47:37

register_global=on c'est dire au monde entier que tu t'en fiches de te faire hacker, et que d'ailleurs tu trouves l'idée assez amusante pr ne pas t'en préoccuper :-)

franchement, imaginez un truc comme ça:

if($motdepasse == $users['utilisateur']) $ok = true;

if($ok)
{
//afficher des données importantes, privées
}


si regiter globals est on, appeler la page en ajouter /?ok=true à l'adresse permet de passer à travers le teste de mot de passe, d'un coup. c'est pas uen bonne idée

signaler à un administrateur
Commentaire de koko le 29/01/2004 07:20:38

tu recrées la faille bouchée par le register_global a off...
tu pourrais modifier ton code pour afficher les $_POST et les $_GET a mettre !!
donc dans un form, tu mets l'adresse d'une page rg.php (registerglobal) et alors de la, tu affiches les champs $_POST, $_GET
donc ca fera :

$nick = $_POST['nick'];
$email = $_POST['email'];
...
tu copies alors dans ta page php et tu dois pas tout faire a la main !!

signaler à un administrateur
Commentaire de gege217 le 29/01/2004 08:32:22

T'as aussi une fonction prévue spécialement pour ca !

import_request_variables();

plus d'infos sur =&gt; http://fr3.php.net/import_request_variables

Des fois ca sert de regarder la doc...

.oOMimiLOo.

signaler à un administrateur
Commentaire de rejnev le 29/01/2004 08:46:59

ouh ouh doucement les gars!!!
moi je cherché à déclarer des variables dynamiquement, apres l'avoir trouver dans la docs. J'ai fait l'analogie avec le problème que j'ai rencontré lorsque j'ai commencé à programmé.
Je suis tout a fait d'accord que c'est une faille de sécurité énorme, j'y avait déja réfléchi et j'aurai du l'écrire en majuscule dans la description de cette source. De plus si tu regarde bien cette source n'est pas dans la rubrique sécurité mias plutot astuce !! ça m'a déja servit pour faire un petit site a la con, alors pourquoi pas quelqu'un d'autre, et puis ca fait un exemple concret pour la déclaration de variable dynamiquement!!!

@+

signaler à un administrateur
Commentaire de rejnev le 29/01/2004 11:12:09

allez pour vous faire plaisir on peut le modifier pour le rendre un peut plus sécurisé :

$var_post = array("var1","var2","var3","var4");

// pour le post
foreach($_POST as $key =&gt; $val)
     if ( in_array($key, $var_post))
        ${$key} = $val;

$var_get = array("var1","var2","var3","var4");
// pour le get
foreach($_GET as $key =&gt; $val)
     if ( in_array($key, $var_get))
         ${$key} = $val;

signaler à un administrateur
Commentaire de Kirua le 29/01/2004 13:11:14

au moins n'importe qui ne peut pas créer ses variables :-)
dis rejnev, c t pas agressif comme message, du tt du tt ;-)

signaler à un administrateur
Commentaire de parweb le 09/06/2006 23:28:00

sinon ya une function nikel pour faire sa c le extract

extract($_POST);
un truc comme ca je crois

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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,250 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é.