Fév
16

Limite du nombre de paramètres GET

Author Appo    Category PHP     Tags , , , ,

Aujourd’hui j’ai rencontré un problème sur un site en production et seulement sur la production. Les symptômes ? Perte d’informations passées en paramètres GET. Après quelques recherches, nous avons repéré que $_GET ne contenait pas toutes les informations présentes dans l’url, il manquait les dernières (environ une dizaine de paramètres manquants).

La première hypothèse fut donc que l’URL était tronquée au delà d’un certain nombre de caractères. Sauf que le problème, c’est que d’une page à l’autre, la longueur de l’URL était différente mais surtout, que l’endroit où l’on perdait le premier paramètre n’était pas le même, donc ce ne pouvait pas être un tronquage de l’URL.

En faisant quelques recherches sur les limites de caractères des paramètres GET, je suis tombé sur ce lien. Ce n’était pas la solution à mon problème, mais c’est ce qui m’a aidé à le résoudre, car dans cet article, l’auteur parle de PHP Suhosin, qui est un patch pour renforcer la sécurité de PHP. Or, ce fameux patch était installé sur le serveur de production. Donc, premier réflexe, je fais un phpinfo afin de voir les propriétés gérées par Suhosin et là que vois-je ?

suhosin.get.max_vars = 100

Voilà donc la source de tous mes problèmes, Suhosin limite le nombre de paramètres GET à 100, et en effet, j’en avais un peu plus d’une centaine. Il suffit de modifier cette valeur dans le php.ini et de redémarrer le service pour que tout rentre dans l’ordre.

Donc voilà, sachez qu’il existe un moyen de limiter le nombre de paramètres GET et même la longueur maximum de la valeur d’un paramètre.



1 Comment to “Limite du nombre de paramètres GET”

  • Vincent 13 octobre 2012 à 18 h 22 min

    J’avais eu un problème similaire; une URL trop longue qui était tronquée par IE 6

    La limite est de 2083 caractères pour IE 6 mais cela doit varier selon les navigateurs.

    Sur le coup, ce n’est pas forcément évident à trouver…

Poster un commentaire

Edito

Bienvenue sur Mémorandom.

Mémorandom est le blog de 2 développeurs web, Appo et Nico.

Vous y trouverez des informations sur différents domaines touchant de près ou de loin au développement web

Tutoriels Yii Framework

Nos derniers articles

Blogs Dev

Liens

Étiquettes