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?
10 réponses
, Vous pouvez l'ajouter à php.ini et cela devrait fonctionner - juste testé sur PHP 5.3.6.
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
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.
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%.
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
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
- décommentez le code à
/etc/php/7.0/fpm/php.ini
et définissez le numéro comme vous le souhaitezmax_input_vars = 4000
- 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
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.
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
Php_value max_input_vars 6000
"mettez cette ligne .fichier htaccess de votre site. "
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)