Предупреждение PHP: неизвестно: входные переменные превысили 1000
Я получаю новое предупреждение php, когда данные POST из формы на моей странице на мой сервер. Предупреждение следующее:
PHP Предупреждение: Неизвестно: входные переменные превысили 1000. Чтобы увеличить изменение предела max_input_vars в php.ini. в Unknown в строке 0, референт: https://mywebsite.com/index.php
Дело в том, что моя форма не имеет около 1000 входных переменных, поэтому я не понимаю, почему это происходит. В качестве побочного примечания, у меня до сих пор не было этой проблемы, и я подозреваю, что когда я запустил yum update
что-то изменилось/было установлено, что вызывает это. Любые советы или ответы приветствуются.
ИЗМЕНИТЬ 1:
Таким образом, я сделал var_dump($_REQUEST)
и получил ~ 1000 одиночных символов. Первые пара элементов в массиве - это то, чем они должны быть, но тогда куча вещей, которые мне не нужны, разбивается на строки с одним символом. Мысли приветствуются.
array(1001) {
["action"]=> string(10) "step1_show"
["submit"]=> string(6) "Step 1"
[0]=> string(1) "a"
[1]=> string(1) "c"
[2]=> string(1) "t"
[3]=> string(1) "i"
[4]=> string(1) "o"
[5]=> string(1) "n"
[6]=> string(1) "="
[7]=> string(1) "l"
[8]=> string(1) "o"
[9]=> string(1) "g"
[10]=> string(1) "o"
[11]=> string(1) "u"
[12]=> string(1) "t"
[13]=> string(1) "&"
[14]=> string(1) "p"
[15]=> string(1) "r"
[16]=> string(1) "o"
[17]=> string(1) "p"
[18]=> string(1) "e"
[19]=> string(1) "r"
[20]=> string(1) "t"
[21]=> string(1) "y"
[22]=> string(1) "="
[23]=> string(1) "3"
[24]=> string(1) "7"
[25]=> .....
ANSWER. Это оказалось проблемой с моим обработчиком отправки. Спасибо всем за ваш вклад.
Ответы
Ответ 1
Это новый параметр/значение в PHP (связанное с обновлением безопасности для предотвращения атак на PHP-скрипты), поэтому вы получите это после обновления (до того, как PHP 5.3.9 не будет установлен/доступен, suhosin пользователи имеют схожие вещи с возрастом).
Входные значения имеют разные типы, и члены массива также учитываются. Таким образом, этого недостаточно для подсчета полей полей, а также для просмотра URL-адреса и других мест, связанных с вводом ($_GET
, $_POST
, $_SERVER
, $_ENV
, $_FILES
, $_COOKIE
...).
См. max_input_vars
:
Сколько входных переменных может быть принято. Использование этой директивы смягчает возможность атак на отказ в обслуживании, которые используют хеш-коллизии. Если есть больше входных переменных, чем указано в этой директиве, выдается E_WARNING
, а дополнительные входные переменные усекаются из запроса. Этот предел применяется только к каждому уровню вложенности многомерного входного массива.
Ответ 2
Я исправил проблему max_input_vars через панель администрирования веб-хоста (Littleoak)
Я изменил max_input_vars = 0
на max_input_vars = 6000
.
На моем сервере установлено несколько установок php, настроенных компанией сервера. Я считаю, что max_input_vars = 0
заключается в предотвращении использования спам-серверами электронной почты сервером для отправки спама. Файл php.ini живет где-то, не знаю, где, но я смог изменить его с помощью cPanel на моем сайте admin.
Ответ 3
У меня была такая же проблема при использовании .ajaxSubmit()
При сериализации формы используйте .serializeObject() вместо .serialize()
Вы можете захватить библиотеку из здесь