Похоже, что существует проблема со старыми версиями PHP и более 1000 полей ввода в одной форме ( см. Этот вопрос ).
Если я запускаю веб-сервер со старой версией PHP, существует ли ограничение на максимальное количество элементов формы в (одном уровне вложенности), как это контролируется директивой php.ini
max_input_vars с PHP 5.3.9?
Или нет ли ограничений в более старых версиях?
Что произойдет, если я буду устанавливать эту переменную в старых версиях в php.ini или .htaccess?
Я заметил, что на моем сервере я запускаю PHP 5.3.3-7 + squeeze17, который также уже имеет директиву max_input_vars
.
Как точно ведут себя более старые версии?
Кажется, есть путаница:
http://www.flowstopper.org/2012/12/my-php-wtf-of-day-maxinputvars.html
Хотя документы говорят: «Доступно с PHP 5.3.9».
http://php.net/manual/en/info.configuration.php
Если бы я должен был догадаться, я бы сказал, что всегда был предел, и его просто вытащили в конфигурацию / документацию в 5.3.9
Кажется, что ошибка в более старых версиях:
https://bugs.php.net/bug.php?id=65778
хотя вы можете изменить директиву в php.ini, и изменение отображается правильно в phpinfo()
, оно не имеет никакого эффекта.
Поведение: все переменные, превышающие 1000, игнорируются.
тестируется в PHP 5.3.3-7 + squeeze17 без модуля suhosin
Возможное обходное решение: сжатие всех форм-данных с помощью javascript
Я думаю, что ваша проблема заключается не в количестве полей формы, я думаю, что все данные, которые вы отправляете, – это многое.
Существует директива php.ini, которая ограничивает количество данных, которые вы можете полностью отправлять по запросу (check: post_max_size ).
Но вы не можете изменить post_max_size
во время выполнения (потому что это значение проверяется перед первой строкой ваших php-файлов во время фазы ввода php).
У вас есть несколько способов изменить это значение:
со следующим кодом:
php_value post_max_size 512M # set maximum post data to 512 MB
со следующим кодом:
post_max_size = 512M