Подтвердить что ты не робот

PHP max_input_vars

Я получаю сообщение об ошибке 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 и не может быть изменено?

4b9b3361

Ответ 1

Вы можете добавить его в php.ini, и он должен работать - просто протестировал его на PHP 5.3.6.

Ответ 2

Ссылка на сеть 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

Ответ 3

Попробовал это исправить с 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.

Ответ 4

Вам нужно раскомментировать значение max_input_vars в файле php.ini и увеличить его (exp 2000), также не забудьте перезагрузить сервер, это поможет 99,99%.

Ответ 5

Сейчас 2018 год. И я просто застрял в этой проблеме, когда должен отправить запрос, который превышает max_input_vars. И я пришел к решению, что newie как я забыл перезапустить службу php fpm после изменения параметра max_input_vars. потому что я только попытался перезапустить сервис apache2, но не php fpm

  1. раскомментируйте код в /etc/php/7.0/fpm/php.ini и установите номер по /etc/php/7.0/fpm/php.ini желанию
    max_input_vars = 4000
  2. перезапустите службу php fpm, так как я использую php 7. Поэтому
    sudo service php7.0-fpm restart

Надеюсь, поможет
Протестировано на Debian Stretch, php7.0

Ответ 6

Использование этой директивы смягчает возможность атак на отказ в обслуживании, которые используют хеш-коллизии. Если имеется больше входных переменных, чем указано в этой директиве, выдается E_WARNING, а дополнительные входные переменные усекаются из запроса.

Я могу предложить не расширять значение по умолчанию, равное 1000, и расширять функциональность приложения путем сериализации запроса или отправки запроса блоками. В противном случае вы можете расширить его до необходимой конфигурации.

Определенно необходимо настроить в php.ini

Ответ 7

Обратите внимание, что вы должны поместить это в файл ".user.ini" в Centos7, а не в "php.ini", который работал в Centos6. Вы можете поместить ".user.ini" в любой подкаталог, чтобы повлиять только на этот каталог.

.user.ini:

max_input_vars = 3000

Протестировано на Centos7 и PHP 5.6.33.

Ответ 8

php_value max_input_vars 6000

Msgstr "Поместите эту строку в файл .htaccess вашего сайта."

Ответ 9

Новый блок Cpanels для просмотра файла .htaccess или если вы добавите файл .user.ini, вы не сможете его увидеть. но с небольшим взломом вы можете заставить его работать. Отредактируйте, например, wp-config.php и в строке URL замените wp-config.php на .htaccess, теперь вы можете вставить значения и сохранить их. введите описание изображения здесь

Ответ 10

Просто была такая же проблема при добавлении пунктов меню в 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

Надеюсь, это поможет.

Ответ 11

"Сообщение 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 для вашего удобства.

Ответ 12

Да, добавьте его в php.ini, перезапустите apache и он должен работать.

Вы можете проверить его на лету, если хотите ini_set("max_input_vars",100)