42 votes

Taille maximale des paramètres de l'URL dans _GET

J'accède à un serveur PHP en utilisant REST : toutes les données sont transmises dans une requête GET sous forme de paramètres d'URL. L'un des paramètres arrive au serveur dans la query_string, mais il n'est pas dans le global _GET. Mais le fait de raccourcir le paramètre (la limite semble être d'environ 512 caractères) le laisse passer.

En supposant que j'ai diagnostiqué le problème correctement, y a-t-il un moyen de modifier cette taille maximale ? Je n'ai trouvé aucune explication dans la documentation, pas même une mention de cette limite. Nous sommes sur Debian Squeeze / Apache 2.2.16 / PHP 5.3.3.

71voto

Karolis Points 5900

Ok, il semble que certaines versions de PHP ont une limitation de la longueur des paramètres GET :

Veuillez noter que les configurations PHP avec le patch suhosin installé auront une limite par défaut de 512 caractères pour les paramètres get. Bien qu'il s'agisse d'une pratique, la plupart des navigateurs (y compris IE) supportent les URLs jusqu'à 2000 caractères environ. caractères, alors qu'Apache a une valeur par défaut de 8000.

Pour ajouter le support des paramètres longs avec suhosin, ajoutez suhosin.get.max_value_length = <limit> sur php.ini

Source : http://www.php.net/manual/en/reserved.variables.get.php#101469

0voto

Geoffroy Points 5173

Voir Quelle est la longueur maximale d'une URL dans les différents navigateurs ?

La longueur de l'url ne peut pas être modifiée en PHP. La question liée concerne la limite de taille des URL, vous trouverez ce que vous cherchez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X