108 votes

PHP max_input_vars

Je reçois un message d'erreur max_input_vars.

Je sais qu'il existe un paramètre php.ini qui peut modifier cela à partir de la version 5.3.9, cependant, j'utilise la version 5.1.6.

Lorsque je consulte les informations de configuration de mon serveur 5.1.6, la valeur de max_input_vars est de 1000.

Ma question est : même si j'utilise la version 5.1.6, je vois ce paramètre dans phpinfo() mais il n'est pas dans le fichier php.ini. Cela signifie-t-il que la valeur est codée en dur dans cette version de PHP et qu'elle ne peut pas être modifiée ?

117voto

lubosdz Points 529

Référence sur PHP net :

http://php.net/manual/en/info.configuration.php#ini.max-input-vars

Veuillez noter que vous ne pouvez pas définir cette directive en temps d'exécution avec la fonction ini_set(nom, nouvelleValeur), par exemple

ini_set('max_input_vars', 3000);

Cela ne fonctionnera pas.

Comme expliqué dans la documentation, cette directive ne peut être définie que par portée de répertoire, ce qui signifie via le fichier .htaccess, httpd.conf ou .user.ini (depuis PHP 5.3).

Consultez http://php.net/manual/en/configuration.changes.modes.php

Ajouter la directive dans le php.ini ou placer les lignes suivantes dans le .htaccess fonctionnera :

php_value max_input_vars 3000
php_value suhosin.get.max_vars 3000
php_value suhosin.post.max_vars 3000
php_value suhosin.request.max_vars 3000

54voto

Narf Points 4409

Vous pouvez l'ajouter à php.ini et cela devrait fonctionner - je viens de le tester sur PHP 5.3.6.

22voto

Vaughany Points 500

Venez de tenter cette correction avec 5.3.3 et il n'y a aucun changement. En faisant des recherches, j'ai trouvé cette page Web http://anothersysadmin.wordpress.com/2012/02/16/php-5-3-max_input_vars-and-big-forms/ détaillant d'autres paramètres qui doivent être modifiés si votre serveur utilise le correctif Suhosin que Apache sous Debian utilise.

Le site explique:

  

Donc, si vous voulez augmenter ce nombre à, disons, 3000 à partir du nombre par défaut qui est de 1000, vous devez mettre dans votre php.ini ces lignes:

     

max_input_vars = 3000   suhosin.post.max_vars = 3000   suhosin.request.max_vars = 3000

Je l'ai testé (ajouté les paramètres au php.ini à la fois dans /etc/php5/apache2 et /etc/php5/cli, et redémarré Apache avec succès) mais toujours pas de variable max_input_vars dans phpinfo.

Quelques sites pointent vers PHP 5.3.9 comme la première version PHP dans laquelle ce changement aura lieu, donc c'est ma faute de ne pas avoir lu correctement le manuel au départ, bien que je sois intéressé de voir des personnes signalant que cela fonctionne dans des versions supérieures à 5.3.3 mais inférieures à 5.3.9.

15voto

nokieng Points 351

Nous sommes en 2018 maintenant. Et je me suis retrouvé bloqué sur ce problème lorsque j'ai dû envoyer une requête qui dépasse le max_input_vars. J'ai trouvé une solution que le nouveau comme moi a oublié de redémarrer le service php fpm après avoir modifié le paramètre max_input_vars. car j'ai seulement essayé de redémarrer le service apache2, mais pas php fpm

  1. Décommenter le code dans /etc/php/7.0/fpm/php.ini et définir le nombre comme vous le souhaitez
    max_input_vars = 4000
  2. Redémarrez le service php fpm, comme j'utilise php 7. Par conséquent,
    sudo service php7.0-fpm restart

En espérant que cela vous aidera
Testé sur Debian Stretch, php7.0

9voto

user2271117 Points 1

Vous devez décommenter la valeur max_input_vars dans le fichier php.ini et l'augmenter (par ex. 2000), n'oubliez pas de redémarrer votre serveur, cela aidera à 99,99%.

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