Ответ 1
Вы можете добавить его в php.ini, и он должен работать - просто протестировал его на PHP 5.3.6.
Я получаю сообщение об ошибке max_input_vars
.
Я понимаю, что есть параметр php.ini
, который может изменить это, начиная с версии 5.3.9, однако я запускаю версию 5.1.6.
Когда я просматриваю конфигурационную информацию для моего сервера 5.1.6, он показывает, что значение max_input_vars
равно 1000.
Мой вопрос: несмотря на то, что я выполняю 5.1.6, я вижу этот параметр от phpinfo()
, но не в файле php.ini
. Означает ли это, что значение жестко закодировано в этой версии PHP и не может быть изменено?
Вы можете добавить его в php.ini, и он должен работать - просто протестировал его на PHP 5.3.6.
Ссылка на сеть PHP:
http://php.net/manual/en/info.configuration.php#ini.max-input-vars
Обратите внимание: вы не можете установить эту директиву во время выполнения с помощью функции ini_set(name, newValue)
, например.
ini_set('max_input_vars', 3000);
Это не сработает.
Как поясняется в документации, эта директива может быть установлена только для области каталога, что означает, что файл .htaccess, httpd.conf или .user.ini(с PHP 5.3).
См. http://php.net/manual/en/configuration.changes.modes.php
Добавление директивы в php.ini или размещение следующих строк в .htaccess будет работать:
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
Попробовал это исправить с 5.3.3, и никаких изменений не произошло. Я нашел эту веб-страницу http://anothersysadmin.wordpress.com/2012/02/16/php-5-3-max_input_vars-and-big-forms/, в которой подробно описаны другие параметры, которые требуют изменения , если на вашем сервере используется патч Suhosin, который Apache под Debian делает.
Сайт объясняет:
Итак, если вы хотите увеличить это число до, скажем, 3000 по умолчанию число, которое равно 1000, вы должны ввести в свои php.ini следующие строки:
max_input_vars = 3000 suhosin.post.max_vars = 3000 suhosin.request.max_vars = 3000
Я тестировал его (добавили настройки в php.ini как в /etc/php 5/apache2, так и в /etc/php 5/cli и перезапустили Apache успешно), но все еще нет переменной max_input_vars в phpinfo.
Несколько сайтов указывают на PHP 5.3.9 в качестве первой версии PHP, в которой это изменение будет иметь место, поэтому моя ошибка не в RTM должным образом в первую очередь, хотя мне интересно видеть, как люди сообщают, что она работает в версии выше 5.3.3, но ниже 5.3.9.
Вам нужно раскомментировать значение max_input_vars в файле php.ini и увеличить его (exp 2000), также не забудьте перезагрузить сервер, это поможет 99,99%.
Сейчас 2018 год. И я просто застрял в этой проблеме, когда должен отправить запрос, который превышает max_input_vars
. И я пришел к решению, что newie как я забыл перезапустить службу php fpm после изменения параметра max_input_vars
. потому что я только попытался перезапустить сервис apache2
, но не php fpm
/etc/php/7.0/fpm/php.ini
и установите номер по /etc/php/7.0/fpm/php.ini
желанию max_input_vars = 4000
sudo service php7.0-fpm restart
Надеюсь, поможет
Протестировано на Debian Stretch
, php7.0
Использование этой директивы смягчает возможность атак на отказ в обслуживании, которые используют хеш-коллизии. Если имеется больше входных переменных, чем указано в этой директиве, выдается E_WARNING, а дополнительные входные переменные усекаются из запроса.
Я могу предложить не расширять значение по умолчанию, равное 1000, и расширять функциональность приложения путем сериализации запроса или отправки запроса блоками. В противном случае вы можете расширить его до необходимой конфигурации.
Определенно необходимо настроить в php.ini
Обратите внимание, что вы должны поместить это в файл ".user.ini" в Centos7, а не в "php.ini", который работал в Centos6. Вы можете поместить ".user.ini" в любой подкаталог, чтобы повлиять только на этот каталог.
.user.ini:
max_input_vars = 3000
Протестировано на Centos7 и PHP 5.6.33.
php_value max_input_vars 6000
Msgstr "Поместите эту строку в файл .htaccess вашего сайта."
Новый блок Cpanels для просмотра файла .htaccess или если вы добавите файл .user.ini, вы не сможете его увидеть. но с небольшим взломом вы можете заставить его работать. Отредактируйте, например, wp-config.php и в строке URL замените wp-config.php на .htaccess, теперь вы можете вставить значения и сохранить их. введите описание изображения здесь
Просто была такая же проблема при добавлении пунктов меню в Wordpress. Я использую Wordpress 4.9.9 на Ubuntu 18.04, PHP 7.0. Я просто раскомментировал следующую строку и увеличил ее до 1500 в /etc/php/7.0/apache2/php.ini
; How many GET/POST/COOKIE input variables may be accepted<br>
max_input_vars = 1500
Затем использовал следующее, чтобы внести изменения:
sudo apache2ctl configtest #(if it does not return ok Apache will not start)
sudo service apache2 reload
Надеюсь, это поможет.
"Сообщение PHP: Предупреждение PHP: Неизвестно: входные переменные превысили 1000. Чтобы увеличить ограничение, измените max_input_vars в php.ini.
Этот параметр конфигурации php max_input_vars будет влиять не только на ваши параметры GET/POST/COOKIES, но и на любые входные данные вашей формы.
Чтобы установить или изменить его значение, выполните следующие действия.
1) проверьте существующие настройки/значения, просмотрев их в файле php.ini Найдите файл php.ini с помощью
<?php echo getinfo(); ?>
найти ниже ключ: загруженный файл конфигурации: /etc/php/5.6/fpm/php.ini
2) Откройте файл php.ini в редактируемом режиме и выполните поиск max_input_vars Эта строка может быть прокомментирована в существующей настройке по умолчанию со значением по умолчанию 1000, поэтому удалите; раскомментировать и отредактировать его с помощью подходящего значения, например 2500.
3) Сохраните файл и перезапустите службы PHP, используя ниже
sudo service php5.6-fpm restart
Точно так же вы можете обновить любую другую похожую конфигурацию PHP для вашего удобства.
Да, добавьте его в php.ini, перезапустите apache и он должен работать.
Вы можете проверить его на лету, если хотите ini_set("max_input_vars",100)