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 ?

5voto

Luis Farfan Points 41

L'utilisation de cette directive atténue la possibilité d'attaques par déni de service qui utilisent des collisions de hachage. Si le nombre de variables d'entrée est supérieur à celui spécifié par cette directive, un E_WARNING est émis et d'autres variables d'entrée sont tronquées de la demande.

Je peux suggérer de ne pas étendre la valeur par défaut qui est de 1000 et d'étendre la fonctionnalité de l'application en sérialisant la demande ou en envoyant la demande par blocs. Sinon, vous pouvez étendre ceci à la configuration nécessaire.

Il est définitivement nécessaire de le configurer dans le php.ini

5voto

Rahul K A Points 192

Placez cette ligne dans le fichier .htaccess de votre site

php_value max_input_vars 6000

3voto

Gary Samad Points 355

Notez que vous devez mettre ceci dans le fichier ".user.ini" dans Centos7 plutôt que dans "php.ini" qui fonctionnait dans Centos6. Vous pouvez mettre ".user.ini" dans n'importe quel sous-répertoire afin d'affecter uniquement ce répertoire.

.user.ini :

max_input_vars = 3000

Testé sur Centos7 et PHP 5.6.33.

2voto

MagicMartinian Points 21

Venez de rencontrer le même problème en ajoutant des éléments de menu à Wordpress. J'utilise Wordpress 4.9.9 sur Ubuntu 18.04, PHP 7.0. J'ai simplement décommenté la ligne suivante et je l'ai augmentée à 1500 dans /etc/php/7.0/apache2/php.ini

; Combien de variables d'entrée GET/POST/COOKIE peuvent être acceptées
max_input_vars = 1500

Ensuite, j'ai utilisé ce qui suit pour effectuer le changement :

sudo apache2ctl configtest  #(si cela ne renvoie pas ok, Apache ne démarrera pas)
sudo service apache2 reload

J'espère que cela aidera.

2voto

Patel Nikhil Points 175

"Message PHP : Avertissement PHP: Inconnu: Les variables d'entrée dépassent 1000. Pour augmenter la limite, modifiez max_input_vars dans php.ini.

Ce paramètre de configuration PHP max_input_vars affectera non seulement vos paramètres GET / POST / COOKIES, il contrôle également toute saisie de formulaire.

Pour définir ou modifier sa valeur, suivez les étapes ci-dessous.

1) Vérifiez le paramètre / la valeur actuel(e) en le visualisant dans votre fichier php.ini Localisez le fichier php.ini en utilisant

recherchez la clé ci-dessous: Fichier de configuration chargé : /etc/php/5.6/fpm/php.ini

2) Ouvrez le fichier php.ini en mode éditable et recherchez max_input_vars Cette ligne peut être commentée dans votre paramètre par défaut existant avec une valeur par défaut de 1000 , Donc supprimez le ; pour la décommenter et Modifiez-la avec votre valeur appropriée par exemple 2500.

3) Enregistrez le fichier et Redémarrez les Services de PHP en utilisant la commande ci-dessous sudo service php5.6-fpm restart

De même, vous pouvez mettre à jour toute autre configuration PHP similaire pour votre confort.

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