Max input vars что это
| Имя | По умолчанию | Место изменения | Список изменений |
|---|---|---|---|
| assert.active | «1» | PHP_INI_ALL | |
| assert.bail | «0» | PHP_INI_ALL | |
| assert.warning | «1» | PHP_INI_ALL | |
| assert.callback | NULL | PHP_INI_ALL | |
| assert.quiet_eval | «0» | PHP_INI_ALL | |
| assert.exception | «0» | PHP_INI_ALL | Доступна с версии PHP 7.0.0. |
| enable_dl | «1» | PHP_INI_SYSTEM | Эта возможность устарела и будет обязательно удалена в будущем. |
| max_execution_time | «30» | PHP_INI_ALL | |
| max_input_time | «-1» | PHP_INI_PERDIR | |
| max_input_nesting_level | «64» | PHP_INI_PERDIR | Доступна с PHP 5.2.3. |
| max_input_vars | 1000 | PHP_INI_PERDIR | Доступна с PHP 5.3.9. |
| magic_quotes_gpc | «1» | PHP_INI_PERDIR | Удалена в PHP 5.4.0. |
| magic_quotes_runtime | «0» | PHP_INI_ALL | Удалена в PHP 5.4.0. |
| zend.enable_gc | «1» | PHP_INI_ALL | Доступна с PHP 5.3.0. |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.
Краткое разъяснение конфигурационных директив.
Завершение работы скрипта при провале проверки утверждений.
Вызов предупреждений PHP для каждой проваленной проверки утверждения.
Пользовательская функция, вызываемая при провале проверки утверждений.
Используйте эту настройку функции error_reporting() во время выполнения проверки утверждений. При включении настройки сообщения об ошибках во время проверки утверждений показываться не будут (неявный вызов error_reporting(0)). Если настройка выключена, ошибки будут выдаваться в соответствии с настройками error_reporting()
Генерирует исключение AssertionError для неудачной проверки утверждения.
Главной причиной, по которой требуется выключение динамической загрузки, является безопасность. С помощью динамической загрузки можно обойти все open_basedir ограничения. По умолчанию динамическая загрузка разрешена.
Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.
Задаёт режим magic_quotes для GPC (Get/Post/Cookie) операций. Если magic_quotes включён, все ‘ (одинарные кавычки), » (двойные кавычки), \ (обратный слеш) и NUL автоматически экранируются обратным слешем.
Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.
Включает или отключает сборщик циклических ссылок.
Как увеличить максимальный лимит входных переменных PHP? (3 метода)
Что такое входные переменные PHP?
Прежде чем мы поговорим о методах увеличения количества входных переменных PHP в WordPress, давайте объясним, что именно такое входные переменные PHP?
Входные переменные PHP – это количество переменных, которые ваш сервер может использовать для запуска функции. Это значение установлено на 3000 для обновленных и современных тем WordPress.
Как вы, вероятно, уже знаете, если значения входных переменных PHP недостаточно, вы получите ошибку Max Input Vars.
Эта ошибка может вызвать множество проблем. Например, вы можете потерять все свои данные или используемый вами шаблон может потерять свою функциональность. Кроме того, могут исчезнуть активированные виджеты на вашем сайте.
Есть много разных способов увеличить максимальное количество входных переменных PHP в WordPress. Однако это полностью зависит от используемого вами хостинг-провайдера.
В этой статье мы обсудим все возможности cPanel. Если вы используете другую панель хостинга, интерфейс может быть другим. Однако методы все те же.
Имейте в виду, что у вас может не быть определенных разрешений для увеличения ограничения PHP max input vars. Поэтому заранее свяжитесь с вашим хостинг-провайдером и попросите предоставить вам необходимые разрешения.
Как увеличить максимальное количество входных переменных PHP?
Обычно этот файл находится в корневом каталоге вашего хоста. Если вы не можете найти его, это может быть связано с тем, что большинство хостинг-провайдеров скрывают файлы (.). Поэтому найдите в своей конфигурации параметр «Показать скрытые файлы» и включите его.
или если вы используете Suhosin, добавьте в файл следующее:
Рекомендуемое значение 3000 для входных переменных PHP. Если вам нужно больше; вы всегда можете увеличить его в соответствии со своими потребностями.
Отредактируйте файл PHP.ini
Следующий способ увеличить максимальное количество входных переменных PHP в WordPress – это отредактировать файл php.ini. Этот файл также находится в корневом каталоге вашего хоста, на котором вы установили WordPress. Если вы не можете его найти, просто создайте файл php.ini.
В любом случае откройте файл в редакторе и добавьте к нему следующий код:
Не забудьте сохранить изменения и один раз перезагрузить сервер, чтобы использовать только что добавленные данные.
Отредактируйте файл wp-config.php
Этот метод также требует, чтобы вы вошли в свою панель хостинга или FTP. Перейдите в диспетчер файлов и найдите файл wp-config.php. Откройте файл в редакторе и добавьте в него следующий код:
Наконец, сохраните изменения.
Вы можете заменить 3000 на любое необходимое значение. Однако мы рекомендуем 3000 или выше, если вы используете любое значение ниже 3000, это может вызвать ошибку Max Input Vars.
Как увеличить максимальный предел входных переменных в PHP5?
Если вы используете хост, который по-прежнему использует PHP5, например GoDaddy или Bluehost, вам необходимо отредактировать файлы php5.ini и user.ini.
Итак, если вы используете хост, который все еще использует PHP5, вам необходимо создать на нем файлы, упомянутые выше. После их создания скопируйте и вставьте в оба следующий код:
Опять же, вы можете заменить 3000 значением, которое требуется вашему сайту.
Возможные проблемы на стороне сервера
Если вы попробовали каждый из вышеперечисленных методов и по-прежнему получаете ошибку max input vars, вам необходимо связаться с провайдером хостинга и попросить их исправить проблему за вас.
На хосте может быть копия файла php.ini, и это может сбить с толку ваш хост. Таким образом, найдите файл и удалите его.
В этой статье мы обсудили все возможные методы увеличения максимального количества входных переменных PHP в WordPress. Имейте в виду, что выполните описанные выше действия, если только вы знакомы с работой с файлами сервера. В противном случае обратитесь к своему хостинг-провайдеру и попросите его помочь вам.
Настройка параметров PHP
По умолчанию на новых серверах PHP работает в режиме mod_php, но при желании вы можете подключить режим mod_cgi, воспользовавшись нашей инструкцией.
apc.cache_by_default
Управление APC осуществляется директивами:
default_charset
Директива указывает кодировку по умолчанию (например, cp1251, utf-8, koi8-r) для всех выдаваемых страниц.
display_errors
Директива указывает, требуется ли выводить ошибки на экран вместе с остальным выводом, либо ошибки должны быть скрыты от пользователя.
Включение и выключение осуществляются следующим образом:
log_errors
Опция позволяет включить логирование ошибок php с их записью в произвольный файл (в примере errors.log). При указании пути к файлу замените u и user на первую букву вашего логина и сам логин.
magic_quotes_gpc
Включение и выключение magic_quotes осуществляется директивами:
mail.add_x_header
Опция позволяет включить логирование отправки почты из скриптов сайта. Логи будут содержать полный путь до скрипта, адрес получателя и заголовки. При указании пути к файлу, в который будут записываться логи (mail.log), замените u и user на первую букву вашего логина и сам логин.
max_input_vars
Директива указывает, сколько входных переменных может быть принято в одном запросе. Например:
mbstring.func_overload и mbstring.internal_encoding
Для корректной работы сайтов на старых версиях CMS Битрикс (до v20.100.0) требуются следующие параметры:
opcache.revalidate_freq
Отключение OpCache (настройка требуется для CMS Битрикс):
pcre.recursion_limit
Устанавливает лимит на рекурсию.
post_max_size
register_globals
Директивы для включения/выключения глобальных переменных:
request_order
Директива регулирует порядок, в котором PHP добавляет переменные GET, POST и Cookie в массив _REQUEST.
upload_max_filesize
Устанавливает максимальный размер закачиваемого файла.
Настройка опций в файле php.ini
allow_url_fopen
Опция включает поддержку оберток URL (URL wrappers), которые позволяют работать с объектами URL по протоколам ftp или http как с обычными файлами.
Включение опции (для отключения значение = 0):
apc.cache_by_default
Отключение APC (для включения значение = 1):
default_charset
Указание кодировки по умолчанию:
display_errors
Включение вывода ошибок (для выключения значение = off).
magic_quotes_gpc
Отключение Magic Quotes (для включения значение = 1):
mail.add_x_header
Включение логирования отправки почты из скриптов сайта. В директиве mail.log указывается путь к файлу, в который будут сохраняться логи (замените u и user на первую букву вашего логина и сам логин).
max_input_vars
Изменение количества вводимых переменных:
mbstring.func_overload и mbstring.internal_encoding
Настройки для старых версий CMS Битрикс:
opcache.revalidate_freq
Отключение OpCache (настройка для CMS Битрикс):
pcre.recursion_limit
post_max_size
register_globals
Отключение Register Globals (для включения значение = 1):
request_order
Регулирует порядок, в котором PHP добавляет переменные GET, POST и Cookie в массив _REQUEST.
upload_max_filesize
Устанавливает максимальный размер закачиваемого файла.
Опции, которые не могут быть изменены
К настройкам PHP, изменение которых невозможно в рамках виртуального хостинга, относятся:
Выполнение кода в PHP 5.3.9
Одним из новшеств релиза PHP 5.3.9 стало введение нового параметра конфигурации max_input_vars, который устанавливает максимальное возможное количество входящих параметров в запросе. Новая директива является мерой против атак Hash Collision DoS, которые могут привести к отказу в обслуживании при отправке большого количества входящих параметров. Однако в коде, отвечающим за ограничение количества параметров в запросе, была допущена ошибка, которая приводит к удаленному выполнению кода. Уязвимость была обнаружена специалистом в области информационной безопасности Стефаном Эссером, известным за публикацию ряда серьезных уязвимостей в PHP, а также за разработку джейлбрейка для Apple iOS.
Уязвимость возникает в случае, когда количество входящих параметров превышает значение max_input_vars (по умолчанию 1000).
Уязвимая функция php_register_variable_ex (php_variables.c@194):
Ограничение количества параметров реализовано циклом с условием if, причем отсутствует блок else, который должен был бы останавливать проход цикла. В следствие этого, на выходе из цикла в макрос Z_ARRVAL_PP (строка 18), который возвращает ссылку на обновленную hash-таблицу, попадет gpc_element_p со значением последней обработанной в цикле переменной, что ведет к выполнению кода.
Уязвимости не подвержены сервера с установленным расширением Suhosin patch, автором которого является Стефан Эссер. Примечательно, что накануне linux-дистрибутив Debian отказался от Suhosin patch, тем самым подвергая своих пользователей новой угрозе. А самое интересное это то, что уязвимость найдена в фиксе другой уязвимости.
Ограничения max_input_vars или почему не сохраняются настройки
Max_input_vars — это количество входных переменных, которые могут быть приняты в одном запросе (ограничение накладывается на каждую из глобальных переменных $_GET, $_POST и $_COOKIE отдельно).
Использование этой директивы снижает вероятность сбоев в случае атак с использованием хеш-коллизий. Если входных переменных больше, чем задано директивой, выбрасывается предупреждение E_WARNING, и все последующие переменные в запросе игнорируются. Это ограничение применяется к каждому уровню вложенности входного многомерного массива.
В силу своих особенностей настройки, Zoo (и JBZoo) использует очень большие формы для работы с настройками сайта. К таким формам относятся редактирование полей материала, настройки позиций в шаблоне и импорт.
Если материалы используют большое количество элементов, есть вероятность, что сработают серверные ограничения — в нашем случае это max_input_vars. Они могут выглядеть как вылет на главную страницу панели управления. Либо форма просто не будет сохранять изменения.
Несколько способов уменьшить ограничения
Вам необходимо повысить значение предельного порога. Давайте рассмотрим на примере как это можно сделать. Для этого вам понадобиться либо обращаться к своему хост-провайдеру, либо сделать это самостоятельно.
Способ #1
Узнать, где расположен ваш файл php.ini, значения которого подтягиваются в конфигурацию. Зайдите в Систему > Информация о системе > Информация о PHP > строка Loaded Configuration File, например, со значением /usr/local/lib/php.ini.
Перейдите на сервер и откройте этот файл для редактирования.
Найдите параметр max_input_vars. А если его там нет, то добавьте значение max_input_vars = 5000.
Проверьте: Система > Информация о системе > Информация о PHP > max_input_vars должно измениться на указанный вами.
На скриншоте значения из вкладки Информация о PHP
Способ #2 (для тех у кого нет управления сервером)
Нужно сделать следующее:
Зайдите в корень Joomla через файловый менеджер или FTP.
Добавьте строчку php_value max_input_vars 5000.
Сохраните и проверьте Система > Информация о системе > Информация о PHP > max_input_vars должно измениться.
Значения, которые можно указывать в ограничениях
Значения параметра max_input_vars напрямую зависят от масштабов вашей работы. Допустим, если значение по умолчанию в 1000 вас не устроило, то представьте планируемый объем работ и пропорционально увеличьте значение. Рекомендуем поставить 3000, но если вдруг в работе возникнут снова «вылеты» на главный экран Joomla — значит его нужно поднять выше, например, до 5000.
Как показывает практика, бывают случаи, когда на web-сервере установлен нестандартный(!) PHP-модуль — suhosin.








