45 votes

Comment modifier le nombre maximum de variables POST en PHP ?

J'utilise WAMP sur ma machine locale, lorsqu'un formulaire (method="POST") avec 2000 champs de saisie est soumis, je ne peux lire que 1001 variables _POST. Avec le débogueur de Netbeans, je peux clairement voir que la taille de _POST est toujours 1001 s'il y a plus de 1001 champs de saisie dans le formulaire.

La même chose fonctionne bien dans une autre machine (WAMP), où je peux voir toutes les variables POST.

Veuillez m'aider à résoudre mon problème.

1 votes

Pourquoi ne pas prendre le php.ini de l'autre machine et le comparer à celui de votre machine actuelle pour voir ce qu'il faut mettre pour l'élément post_max_size etc variables ?

0 votes

Utilisez-vous Suhosin (Hardened PHP) ?

0 votes

Je ne sais pas si c'est php ou la limitation du navigateur web...

92voto

lightster Points 672

PHP 5.3.9 a introduit l'option max_input_vars qui a une valeur de 1000 par défaut. Consultez le Configuration de l'exécution du manuel PHP. La valeur par défaut et le journal des modifications sont en haut de la page.

La valeur peut être modifiée en mettant à jour le php.ini du serveur, en ajoutant un fichier .htaccess, ou ajouter une ligne à httpd.conf .

1 votes

Le mérite en revient à un collègue qui a eu ce problème hier encore et qui a eu la gentillesse de partager ses conclusions avec l'équipe :)

1 votes

Pour quelqu'un qui chercherait dans le futur, j'ai trouvé qu'un serveur cPanel par défaut à partir du 2013-03-15 limitait le nombre de variables d'entrée à 512. Certains de nos scripts passaient beaucoup plus que cela et l'ajout de max_input_vars à php.ini a réglé le problème.

18voto

jprofitt Points 8254

Si vous utilisez Suhosin avec Hardened PHP, il se peut que vous vous heurtiez à une limite maximale de variables qu'il impose. Dans votre php.ini, vous pouvez juste ajouter

[suhosin]
suhosin.request.max_vars = 1000
suhosin.post.max_vars = 1000

en changeant 1000 à ce que vous voulez et redémarrez votre serveur web.

J'ai rencontré ce problème sur la page des permissions de Drupal lorsque de nombreux modules étaient installés avec un grand nombre de rôles, ce qui entraînait une tonne de cases à cocher. Il ne pouvait en enregistrer qu'un certain nombre avant que tout ce qui suivait ne soit simplement ignoré.

Il semble que ce n'est probablement pas votre problème, mais comme il est assez probable que quelqu'un dans l'avenir tombe sur ceci en cherchant quelque chose de connexe, je vais aller de l'avant et jeter ceci dans la mesure où il m'a fallu des siècles pour comprendre quand j'étais bloqué.

0 votes

Merci. Je n'utilise pas Suhosin.

1 votes

Il n'y a pas de suhosin pour php5.4 ou php5.5 :(

8voto

JaPeK Points 1

J'ai résolu mon problème de $_POST max inputs -problem en ajoutant ce qui suit à php.ini :

max_input_vars = 5000
suhosin.request.max_vars = 5000
suhosin.post.max_vars = 5000

Notez également le paramètre suhosin.request.max_vars.

0 votes

max_input_vars était parfaitement adapté à mon cas :)

1voto

Robson Mtos Points 1

J'ai résolu ce problème. Ouvrez le fichier de configuration PHP.INI et ajoutez ces lignes

[suhosin]

suhosin.post.max_vars = 20000

suhosin.request.max_vars = 20000

-1voto

Aleks G Points 25412

Je pense que le problème vient de la quantité de données fournies par votre requête POST. Il n'y a pas de paramètre qui limite le nombre de variables $_POST qui peuvent être définies. Cependant, il y a une limite de mémoire pour les données POST qui est de 8MB par défaut.

Dans votre fichier php.ini, essayez de modifier la valeur du paramètre suivant post_max_size et fixez-la à une valeur plus élevée. N'oubliez pas de redémarrer apache après la modification.

0 votes

J'ai modifié post_max_size à 81M également 0 et redémarré WAMP toujours le problème existe.

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