Как увеличить максимальную переменную POST в PHP? - PullRequest
41 голосов
/ 22 февраля 2012

Я использую WAMP на моем локальном компьютере, когда отправлена ​​ФОРМА (method = "POST") с 2000 полями ввода, я могу читать только переменную _POST 1001.то есть с отладчиком Netbeans я ясно вижу, что размер _POST всегда равен 1001. Если в форме более 1001 поля ввода.

Я использовал этот http://ideone.com/GAw14 код Java для создания формы с N полями ввода ипроверено.

То же самое работает нормально на другом компьютере (WAMP), где я вижу все переменные POST.

Пожалуйста, помогите мне решить мою проблему.

Ответы [ 5 ]

84 голосов
/ 22 февраля 2012

В PHP 5.3.9 введена опция конфигурации max_input_vars, значение которой по умолчанию равно 1000. Ознакомьтесь с разделом Настройка во время выполнения руководства по PHP. Значение по умолчанию и журнал изменений находятся вверху страницы.

Значение можно изменить, обновив php.ini на сервере, добавив файл .htaccess или добавив строку в httpd.conf .

18 голосов
/ 22 февраля 2012

Если вы используете Suhosin с Hardened PHP, возможно, вы достигли максимального предела переменных, который он налагает.В своем php.ini вы можете просто добавить

[suhosin]
suhosin.request.max_vars = 1000
suhosin.post.max_vars = 1000

, изменив 1000, к любому значению и перезапустить ваш веб-сервер.

Я столкнулся с этим на странице Разрешения Drupal, когда было установлено много модулей с большим количеством ролей, что привело к множеству флажков.Это сохранит только определенное их количество, прежде чем что-либо после будет просто проигнорировано.

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

8 голосов
/ 24 мая 2014

Я решил свою проблему $ _POST max input, добавив в php.ini следующее:

max_input_vars = 5000
suhosin.request.max_vars = 5000
suhosin.post.max_vars = 5000

Обратите внимание также на suhosin.request.max_vars.

1 голос
/ 13 апреля 2013

Я решил эту проблему.Откройте файл конфигурации PHP.INI и добавьте эти строки

[suhosin]

suhosin.post.max_vars = 20000

suhosin.request.max_vars = 20000

0 голосов
/ 22 февраля 2012

Я подозреваю, что проблема связана с количеством данных, поступающих с вашим запросом POST.Нет настроек, ограничивающих количество переменных $ _POST, которые можно установить.Однако существует ограничение памяти для данных POST, которое по умолчанию составляет 8 МБ.

В вашем файле php.ini попробуйте изменить значение post_max_size и установить для него более высокое значение.Не забудьте перезапустить apache после внесения изменений.

...