Обмеження max_input_vars або чому не зберігаються настройки - каталоги і магазин для joomla

Max_input_vars - це кількість вхідних змінних, які можуть бути прийняті в одному запиті (обмеження накладається на кожну з глобальних змінних $ _GET. $ _POST і $ _COOKIE окремо).

Використання цієї директиви знижує ймовірність збоїв в разі атак з використанням хеш-колізій. Якщо вхідних змінних більше, ніж задано директивою, викидається попередження E_WARNING. і всі наступні змінні в запиті ігноруються. Це обмеження застосовується до кожного рівня вкладеності вхідного багатовимірного масиву.

В силу своїх особливостей настройки, Zoo (і JBZoo) використовує дуже великі форми для роботи з настройками сайту. До таких форм належать редагування полів матеріалу, налаштування позицій в шаблоні і імпорт.

Якщо матеріали використовують велику кількість елементів, є ймовірність, що спрацюють серверні обмеження - в нашому випадку це max_input_vars. Вони можуть виглядати як виліт на головну сторінку панелі управління. Або форма просто не буде зберігати зміни.

Кілька способів зменшити обмеження

Вам необхідно підвищити значення граничного порогу. Давайте розглянемо на прикладі як це можна зробити. Для цього вам знадобитися або звертатися до свого хост-провайдеру, або зробити це самостійно.

Дізнатися, де розташований ваш файл 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.

Знайдіть і відкрийте файл «.htaccess» (іноді для цього потрібно перейменувати файл в htaccess.txt. Не забудьте потім перейменувати назад в .htaccess)

Додайте рядок php_value max_input_vars 5000.

Збережіть і перевірте Система> Інформація про систему> Інформація про PHP> max_input_vars має змінитися.

Значення, які можна вказувати в обмеженнях

Як показує практика, бувають випадки, коли на web-сервері встановлений нестандартний (!) PHP-модуль - suhosin.

Це можна побачити через phpinfo ()

Обмеження max_input_vars або чому не зберігаються настройки - каталоги і магазин для joomla