Я получаю новое предупреждение php, когда данные POST из формы на моей странице на мой сервер. Предупреждение следующее:
PHP Предупреждение: Неизвестно: входные переменные превысили 1000. Чтобы увеличить изменение предела max_input_vars в php.ini. в Unknown в строке 0, референт: https://mywebsite.com/index.php
Дело в том, что моя форма не имеет около 1000 входных переменных, поэтому я сбив с толку, почему это происходит. В качестве побочного примечания у меня не было этой проблемы до недавнего времени, и я подозреваю, что когда я запустил yum update
что-то изменилось / было установлено, что вызывает это. Любые советы или ответы приветствуются.
EDIT 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]=> .....
ОТВЕТ : В конечном итоге это проблема с моим обработчиком. Спасибо всем за ваш вклад.
Это новая настройка / значение в PHP (связанное с обновлением безопасности для предотвращения атак на PHP-скрипты), поэтому вы получите это после обновления (до того, как PHP 5.3.9 не будет установлен / недоступен, пользователи сухозина имеют аналогичную вещь с возрастов).
Входные значения имеют разные типы, и члены массива также учитываются. Поэтому недостаточно подсчета полей полей, а также посмотреть URL-адрес и другие места, связанные с вводом ( $_GET
, $_POST
, $_SERVER
, $_ENV
, $_FILES
, $_COOKIE
…).
См. max_input_vars
:
Сколько входных переменных может быть принято. Использование этой директивы смягчает возможность атак на отказ в обслуживании, которые используют хеш-коллизии. Если имеется больше входных переменных, чем указано в этой директиве,
E_WARNING
, а дополнительные входные переменные усекаются из запроса. Этот предел применяется только к каждому уровню вложенности многомерного входного массива.
Я исправил проблему max_input_vars через панель администрирования веб-хоста (Littleoak). Я изменил max_input_vars = 0
на max_input_vars = 6000
. На моем сервере установлено несколько установок php, настроенных компанией сервера. Я считаю, что max_input_vars = 0
заключается в том, чтобы запретить спам-спам электронной почты использовать сервер для отправки спама. Файл php.ini живет где-то, не знаю, где, но я смог изменить его с помощью cPanel на моем сайте admin.
У меня была такая же проблема при использовании .ajaxSubmit ()
При сериализации формы используйте .serializeObject () вместо .serialize ()
Вы можете захватить библиотеку здесь