[PHP] Récupérer la liste des paramètres passés via URL [résolu]

Récupérer la liste des paramètres passés via URL [résolu] [PHP] - PHP - Programmation

Marsh Posté le 04-07-2002 à 10:10:16    

Quand j'appelle une page en php avec des paramètres dans l'URL, comment je fais pour récupérer la liste de tous les paramètres sachant que je ne sais pas quel sera leur nom ni même leur nombre.
 
Exemples:
- Quand j'appelle "test.php?A=1&B=2&C=3", je veux que le script m'affiche "A B C"
- Pour "test.php?nomdevariablealaconetdontjignoretout=123", je veux voir s'afficher "nomdevariablealaconetdontjignoretout".
 
Je sais qu'il existe $HTTP_POST_VARS[] pour les variables passées par POST, j'aimerais un équivalent pour les paramètres de l'URL.
 
---------------
Edit:
Problème résolu. Réponse: HTTP_GET_VARS [g]


Message édité par Toucouch le 05-07-2002 à 10:19:22
Reply

Marsh Posté le 04-07-2002 à 10:10:16   

Reply

Marsh Posté le 04-07-2002 à 10:43:42    

J'ai pas trop compris ou se trouvais ton probleme
mais si tu passe tes variables dans le meme ordre
tu peux recuperer l'url avec cette commande:


$url = sprintf("%s", $REQUEST_URI);
echo "[$url]";


t'auras plus qu'a faire une fonction qui decoupera la ligne
et ki te renvera tes noms de variables et leurs valeurs sous
forme d'un tableau.
Bon si j'ai repondu a cote j'en suis desole  :jap:


Message édité par kalder le 04-07-2002 à 10:45:20
Reply

Marsh Posté le 04-07-2002 à 10:48:46    

Kalder > En fait le but c'est de pouvoir gérer n'importe quel argument sans connaitre l'ordre, le nom, la valeur, ni quoi que ce soit a priori.
 
L'élément qui me manquait c'était $QUERY_STRING. J'ai pondu une petite fonction à base de regex pour obtenir mon tableau:

Code :
  1. $strParam = $QUERY_STRING;
  2.     while($strParam)
  3.       {
  4.         $tabParams[ereg_replace("^([^=]+)=[^&]+&?.*$","\\1",$strParam)] = ereg_replace("^[^=]+=([^&]+)&.*$","\\1",$strParam);
  5.         $strParam = ereg_replace("(^[^=]+=[^&]+&?)(.*$)","\\2",$strParam);
  6.         $i--;
  7.       }
  8.     $i=0;
  9.     while( list($var, $val) = each($tabParams) )
  10.       echo $i++.": $var=>$val<br />\n";


Je le mets à tout hasard des fois que ça intéresse quelqu'un...

Reply

Marsh Posté le 04-07-2002 à 10:59:18    

En effet $QUERY_STRING
est plus interressant a exploiter
 
J'ai appris un truc  :D  

Reply

Marsh Posté le 04-07-2002 à 12:34:21    

tu as aussi $HTTP_GET_VARS[]

Code :
  1. while ( list($key,$val)= each($HTTP_GET_VARS) ){
  2.   echo "$key = $val";
  3. }


---------------
...oups kernel error...
Reply

Marsh Posté le 04-07-2002 à 12:48:35    

:)  :)  :)  :)  :)  :)  :)  :)  :)  :)  
t'as meme plus besoin de ta fonction!!!!
 :p  :p  :p  :p  :p  :p  :p  :p  :p  :p


Message édité par kalder le 04-07-2002 à 12:49:26
Reply

Marsh Posté le 05-07-2002 à 10:17:54    

kalder a écrit a écrit :

:)  :)  :)  :)  :)  :)  :)  :)  :)  :)  
t'as meme plus besoin de ta fonction!!!!
 :p  :p  :p  :p  :p  :p  :p  :p  :p  :p




Ca tombe bien, parce que pour une raison qui m'échappe, elle ne détectait pas quand la ligne était vide et à la fin, elle bouclait sur une chaîne qui contenait "\2"...
Mais bon, y avait de l'idée... :D
 
En tous cas, merci pour vos réponses! :jap:

Reply

Sujets relatifs:

Leave a Replay

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