2011-05-25 4 views
6

Je l'adresse suivanteComment lire le paramètre de la chaîne de requête HTTP

http://www.example.com/node/add/forum/3?gids[]=13 

Je veux obtenir la valeur 13 à partir de mon module.

J'ai essayé avec

$_GET['gid[]'] 

et

$_GET['gids%5B%5D'] 

mais je reçois toujours null.

Comment est-ce que je peux faire ceci? Merci

+0

Avez-vous essayé print_r ($ _ GET ['gids']); ? ou echo $ _GET ['gids'] [1]; ? – Chumillas

+0

... ou, plus généralement, print_r ($ _ REQUEST) car l'OP n'est pas sûr de savoir comment ce paramètre de requête sera nommé. Dans ce cas, Joe a la réponse ci-dessous: Ils sont automatiquement placés dans un tableau nommé 'gids'. – Hound

+0

@Chumillas: Je n'ai pas. mais [la réponse de Joe] (http://stackoverflow.com/questions/6126795/how-to-read-parameter-from-the-http-query-string/6126877#6126877) m'a mis dans la bonne direction. Merci. – MarcoS

Répondre

7

En supposant que l'URL est correctement codée (gids% 5B% 5D) et que c'est le seul élément dans le tableau, alors le contenu de ce premier élément dans gids serait $_GET['gids'][0].

+0

merci: c'était ça !!! Une autre question: vous écrivez "Drupal a sa propre façon de gérer la chaîne de requête", et savez-vous où je peux lire à ce sujet? J'ai cherché mais n'ai pas trouvé de documentation sur ce sujet. Tout lien vers une documentation utile est très apprécié. – MarcoS

+0

Désolé, je pensais à 'arg()', qui ne traite que la variable de chaîne de requête de chemin ('$ _GET ['q']' '). Mise à jour pour supprimer le problème de traiter toutes les variables '$ _GET'. – Dan

+0

Si vous l'utilisez, vous devez nettoyer l'entrée ou vous venez d'ouvrir un trou de sécurité XSS sur votre site. – Brady

3

En PHP 5.2+, utilisez filter_input() pour lire GET et POST les variables:

$gids = filter_input(INPUT_GET, 'gids', FILTER_DEFAULT, FILTER_FORCE_ARRAY | FILTER_FORCE_ARRAY); 
+0

merci! Cela peut être utile à l'avenir. Pour mes fins actuelles, [la réponse de Joe] (http://stackoverflow.com/questions/6126795/how-to-read-parameter-from-the-http-query-string/6126877#6126877) a fait le travail. – MarcoS

4

Depuis c'est marqué avec le mot-clé "Drupal" et revient sur les recherches Google. Le Drupal 7 façon de le faire et le rend facile est d'utiliser drupal_get_query_parameters(). Cela retournera un tableau associatif de toutes les variables et valeurs de la chaîne de requête en une seule fois. En utilisant cela, lorsque vous stockez les informations provenant de l'URL, elles ont été nettoyées pour les attaques XSS et SQLi.

+0

Je pense que cela devrait être la réponse acceptée puisque c'est la façon Drupal. – ionize

Questions connexes