Vars D'entrée PHP max

Je reçois un message d'erreur max_input_vars.

Je comprends qu'il y a un paramètre php.ini qui peut changer cela à partir de la version 5.3.9 cependant, j'exécute la version 5.1.6.

Lorsque j'affiche les informations de configuration de mon serveur 5.1.6, la valeur max_input_vars est 1000.

Ma question est: même si j'exécute 5.1.6, je vois ce paramètre à partir de phpinfo() mais ce 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 ne peut pas être modifiée?

65
php
demandé sur zessx 2012-04-24 22:18:14

10 réponses

, Vous pouvez l'ajouter à php.ini et cela devrait fonctionner - juste testé sur PHP 5.3.6.

37
répondu Narf 2014-09-09 07:19:04

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 cours d'exécution avec la fonction ini_set(name, newValue), 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 .fichier htaccess, httpd.conf ou .utilisateur.ini (depuis PHP 5.3).

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

Ajout de la directive en php.ini ou en plaçant les lignes suivantes dans .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
81
répondu lubosdz 2016-11-16 11:54:59

Vient de tenter ce correctif avec 5.3.3 et il n'y a pas de changement. Googler autour 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 patch Suhosin , Ce Qu'Apache fait sous Debian.

Le site explique:

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

Max_input_vars = 3000 suhosin.post.max_vars = 3000 suhosin.demande.max_vars = 3000

Je l'ai testé (ajout de paramètres à php.ini à la fois dans/etc/php5 /apache2 et/etc/php5 / cli, et a 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 de PHP dans laquelle ce changement prendra, donc ma faute pour ne pas RTM correctement en premier lieu, bien que je suis intéressé de voir des gens le signaler fonctionnant dans la version supérieure à 5.3.3 mais inférieure à 5.3.9.

17
répondu Vaughany 2012-07-05 08:33:09

Vous devez décommenter la valeur max_input_vars en php.fichier ini et de l'augmenter (exp. 2000), n'oubliez pas non plus de redémarrer votre serveur cela aidera pour 99,99%.

8
répondu Oleg Sapishchuk 2014-04-30 08:47:07

L'utilisation de cette directive atténue la possibilité d'attaques par déni de service qui utilisent des collisions de hachage. S'il y a plus de variables d'entrée que spécifié par cette directive, un E_WARNING est émis, et d'autres variables d'entrée sont tronquées à partir de la requête.

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

Il a certainement besoin de mettre en place dans le php.ini

3
répondu Luis Farfan 2016-09-08 12:57:37

Nous sommes en 2018 maintenant.Et je suis juste resté coincé sur ce problème quand je dois envoyer une demande qui dépasse le max_input_vars. Et je suis venu avec une solution que newie comme moi a oublié de redémarrer le service php FPM après avoir changé le paramètre max_input_vars. parce que j'ai seulement essayé de redémarrer le service apache2, mais pas php fpm

  1. décommentez le code à /etc/php/7.0/fpm/php.ini et définissez le numéro comme vous le souhaitez
    max_input_vars = 4000
  2. redémarrez le service php fpm, car j'utilise php 7. Par conséquent,
    sudo service php7.0-fpm restart

J'espère que ça aide
Testé sur Debian Stretch, php7.0

2
répondu nokieng 2018-02-20 17:16:05

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

.utilisateur.ini:

max_input_vars = 3000

Testé sur Centos7 et PHP 5.6.33.

1
répondu Gary Samad 2018-02-20 06:07:21

Nouveau bloc Cpanels pour voir le .fichier htaccess ou si vous ajoutez un .utilisateur.ini vous ne serez pas en mesure de le voir. mais avec un petit hack, vous pouvez le faire fonctionner. Modifier par exemple wp-config.php et dans la barre D'URL remplacer wp-config.php par .htaccess maintenant, vous pouvez coller les valeurs et l'enregistrer. entrez la description de l'image ici

0
répondu Sebastian Heye 2018-03-29 22:10:24

Php_value max_input_vars 6000

"mettez cette ligne .fichier htaccess de votre site. "

0
répondu Rahul k.a 2018-05-02 09:54:56

Oui, ajoutez-le au php.ini, redémarrez apache et cela devrait fonctionner.

, Vous pouvez le tester à la volée si vous le souhaitez avec ini_set("max_input_vars",100)

-5
répondu Quaid 2014-11-26 10:26:02