php max input vars htaccess
Поделиться
doctor Brain
мир глазами веб-разработчика
PHP: max_input_vars
для чего нужен параметр max_input_vars в PHP
время чтения 3 мин.
Для начала, немного информации о параметре max_input_vars.
Несмотря на то, что для данного параметра значение по умолчанию равно 1000 (одна тысяча), часто возникают ситуации, в которых необходимо наложить ограничение на количество передаваемых переменных или, наоборот, увеличить их количество.
Почему этот параметр нужно уменьшать?
Давайте представим, что у Вас есть приложение, которое манипулирует ограниченным количеством переменных. Например, нужны только такие параметры, как имя пользователя, e-mail и пароль. В таком случае можно уменьшить значение max_input_vars, ограничив количество передаваемых на сервер данных, что, несомненно, положительно скажется на уровне безопасности приложения.
Почему этот параметр нужно увеличивать?
Пусть это звучить безумно, но потребность в передаче более тысячи переменных в POST-запросе не является чем-то исключительным, в особенности при взаимодействии с API.
Например, на Вашем сервере хранится информация о заработной плате. Чтобы провести начисления, нужно через API системы учета рабочего времени получить информацию о всем отработанном времени в часах и минутах для каждого сотрудника. В больших компаниях, данные быстро преодолеют лимит, равный 1000 переменных, именно поэтому необходимо увеличить значение параметра max_input_vars.
Как установить значение max_input_vars в php.ini?
Значение max_input_vars можно установить в файле php.ini. В этом случае оно будет применяться обязательно при каждой загрузке сервера.
Как установить значение max_input_vars в httpd.conf?
Заключение
В данной статье мы узнали, для чего нужен параметр max_input_vars и разобрали три способа изменения его значения. Применимость каждого из предложенных способов зависит от веб-окружения Вашего проекта. Надеюсь, хотя бы один из предложенных методов позволит сделать настройки Вашего проекта лучше.
Настройка параметров 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 max_input_vars
I’m getting a max_input_vars error message.
I understand there’s a php.ini setting that can change this starting with version 5.3.9 however, I’m running version 5.1.6.
When I view the configuration information for my 5.1.6 server it shows max_input_vars value is 1000.
My question is: Even though I’m running 5.1.6, I see this setting from phpinfo() but it’s not in the php.ini file. Does this mean that the value is hard coded in this version of PHP and can’t be changed?
13 Answers 13
Reference on PHP net:
Have just attempted this fix with 5.3.3 and there’s no change. Googling around I found this web page http://anothersysadmin.wordpress.com/2012/02/16/php-5-3-max_input_vars-and-big-forms/ detailing other settings which need changing if your server uses the Suhosin patch which Apache under Debian does.
So, if you want to increase this number to, say, 3000 from the default number which is 1000, you have to put in your php.ini these lines:
max_input_vars = 3000 suhosin.post.max_vars = 3000 suhosin.request.max_vars = 3000
I tested it (added settings to php.ini both in /etc/php5/apache2 and /etc/php5/cli, and restarted Apache successfully) but still no max_input_vars variable in phpinfo.
A few sites point to PHP 5.3.9 as the first PHP version in which this change will take, so my fault for not RTM properly in the first place, although I’m interested to see people reporting it working in version above 5.3.3 but below 5.3.9.
Php max input vars htaccess
The PHP Max Input Vars is the maximum number of variables your server can use for a single function. To work properly with a modern WordPress theme set this value to 3000. If the value is too low, you may experience problems such as lost data within your Theme Options and disappearing widgets.
How to increase the PHP Max Input Vars
Most shared hosts won’t grant you full access to modify this value. Please contact your host first to find out if they can adjust it for you. This is a simple setting they can change without problems (they tend to keep it low by default to save their resources).
For advanced users who have their own server setups and full access to the PHP.ini file, please go ahead and try Method 1 first before the other method. For standard users, we encourage you to try Method 2 instead.
1 Method: edit the PHP.ini file
NOTE: many shared hosts prohibit you from having direct access to the PHP.ini file. Only do this method if you have direct access to your PHP.ini file or if you’re on your local host.
PHP Max Input Vars (allowed)
If after correctly edited the PHP Max Input Vars value, the PHP Max Input Vars (allowed) still reports an error this could be due to two factors:
Как увеличить PHP Max Input Vars Limit?
Что такое PHP Input Vars PHP?
Прежде чем мы поговорим о методах увеличения PHP Max Input Vars в WordPress, давайте объясним, что именно такое PHP Input Vars?
Входные переменные PHP – это количество переменных, которые ваш сервер может использовать для запуска функции. Это значение равно 3000 для обновленных и современных тем WordPress.
Как вы, вероятно,уже понимаете, если значение PHP Input Vars недостаточно, вы получите ошибку Max Input Vars.
Эта ошибка может вызвать множество проблем. Например, вы можете потерять все свои данные или шаблон, который вы используете, может потерять свою функциональность. Кроме того, могут бесследно исчезнуть активированные на вашем сайте виджеты.
Существует множество различных методов увеличения входных значений PHP Max в WordPress. Однако то, будут ли они работать, полностью зависит от того, какого хостинг-провайдера вы выбрали.
В этой статье мы обсудим все возможности cPanel. Если вы используете другую панель хостинга, интерфейс может отличаться. Однако методы все те же.
Имейте в виду, что у вас может не быть определенных разрешений для увеличения ограничения PHP Max Input Vars. Поэтому заранее свяжитесь с техподдержкой Вашего хостинг-провайдера и попросите предоставить вам необходимые разрешения.
Как увеличить PHP Max Input Vars Limit?
Вы можете увеличить лимит входных переменных PHP Max, добавив строки в файл. htaccess, php. ini или wp-config.php. Далее мы объясняем каждый из этих методов.
Отредактируйте файл. htaccess
Первый способ увеличить ограничение на максимальное значение входных переменных – отредактировать файл. htaccess. Прежде чем вносить какие-либо изменения в файл, убедитесь, что у Вас есть его резервная копия.
Обычно этот файл находится в корневом каталоге вашего сайта. Если вы не можете найти его, это может быть связано с тем, что большинство хостинг-провайдеров скрывают файлы подобного типа. Поэтому найдите опцию “Показать скрытые файлы” в своей конфигурации и включите ее.
Обычно значения 3000 хватает, но если Ваши потребности выше – ставьте соответствующий параметр.
Редактирование файла PHP.ini
Этот файл должен содержать следующую строку:
Обязательно сохраните изменения в файле и дождитесь перезагрузки сервера, только тогда он станет работать с новыми параметрами.
Отредактируйте файл wp-config.php
Всё по аналогии с предыдущим способом – значение может быть и большим. Не забудьте сохранить изменения, внесенные в файл.
Как изменить Max Input Vars Limit в PHP5?
Если Ваш хостинг использует PHP5 ( в частности, GoDaddy и Bluehost), Вам необходимо отредактировать два файла: php5.ini и user.ini.
Файлы с такими именами Вы должны создать в корневой директории сайта, далее – скопировать и вставить в каждый файл следующий код:
По-прежнему, можете заменить 3000 на любое другое значение.