Comment récuperer $_GET['machin'] en $machin ? [résolu]

Comment récuperer $_GET['machin'] en $machin ? [résolu] - PHP - Programmation

Marsh Posté le 17-08-2005 à 11:20:32    

Hello !
 
Je dois faire un petit script qui permet de récupérer les clés et les valeurs de $_GET de n'importe quelle page php sachant que les noms de clés doivent devenir $clé. Les clés sont différentes d'une page à une autre.
 
Avec un exemple, c'est mieux :
 

sur une page, j'ai en GET : tomate
et je veux que $tomate=$_GET['tomate']
 
mais sur une autre page, j'ai en GET : concombre
et je veux que $concombre=$_GET['concombre']


 
Je sais lister les clés et les valeurs avec list et each, mais je ne sais pas comment créer la variable $machin ...
 
 
Si quelqu'un a un idée :jap:


Message édité par Pizz le 17-08-2005 à 11:52:40

---------------
C'est quand on a le nez dans la tomate qu'on voit mieux la tomate !
Reply

Marsh Posté le 17-08-2005 à 11:20:32   

Reply

Marsh Posté le 17-08-2005 à 11:23:49    

Code :
  1. foreach ($_GET as $val) {
  2.   // vérifier si $val contient des caractères spéciaux
  3.   $$val = $val;
  4. }


 
Attention, si la clé contient un accent ou tout caractère spécial, commence par un nombre ou contient des espaces, ceci n'est pas valide.
Il faudrai que tu fasses une fonction qui vérifie cela.
 
Si tu peux éditer la configuration du serveur, dans ton php.ini tu peux activer la variable register_globals = on, qui fait tout seul le travail. $_GET['truc'] sera automatiquement $truc. Mais attention si tu as un $_POST['truc'] et un $_GET['truc'] ou encore $_SESSION['truc'], je suis incapable de te dire lequel prendra $truc (sûrement le dernier traîté)
Ceci est déconseillé car tu te retrouves alors avec un grand nombre de variables et n'importe qui peut réecrire une variable que toi tu as défini dans ton code, ce qui implique quelques risques de sécurité.
Je te conseille de rester avec les tableaux 'superglobaux', c'est mieux organisé et plus sûr: ce qui est envoyé par le visiteur ne se trouve QUE dans ces tableaux et ne risque pas de réecrire une variable que tu as défini à l'avance.


Message édité par dotfx le 17-08-2005 à 11:41:40

---------------
www.renderfarm.online
Reply

Marsh Posté le 17-08-2005 à 11:46:02    

merci pour ton aide :jap:
 
je dois mettre à jour des sites en php fait "à la n'importe comment" et en attendant de corriger le code, je fais ce petit script pour que ça fonctionne quand même sur le nouveau serveur.
 
il me manquait seulement "$$machin", je ne savais pas qu'on pouvait doubler le $.
 
j'utilise ça :
 

while (list($key,$val)=each($_GET))
  {
  $$key=$val;
  }


 
et la même chose pour POST.
 
ça fonctionne très bien.
 
 
encore merci :jap:


Message édité par Pizz le 17-08-2005 à 11:49:34

---------------
C'est quand on a le nez dans la tomate qu'on voit mieux la tomate !
Reply

Marsh Posté le 17-08-2005 à 12:00:38    

y'a aussi qui le fait :  

Code :
  1. extract($_GET, EXTR_PREFIX_SAME, "" );


---------------
Always wear a camera!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed