🚀 Cum să remediați eroarea “PHP Max Input Vars Limit” în WordPress

Dacă construiți sau gestionați un site WordPress și brusc întâlniți eroarea:

“Warning: S-a atins limita Max Input Vars”
sau
“Creșteți max_input_vars la o valoare mai mare”

…înseamnă că serverul dvs. blochează PHP de la procesarea prea multor câmpuri de intrare – adesea observate la salvarea meniurilor mari, a constructorilor de pagini (cum ar fi Elementor sau WPBakery) sau a trimiterilor de formulare.

În acest articol avansat, vom acoperi:

  • ✅ Ce este directiva max_input_vars
  • 🧠 Cum afectează WordPress
  • 🔧 Cum să o remediați prin mai multe metode (php.ini, .htaccess, wp-config, Nginx, cPanel etc.)
  • 🔐 Cele mai bune practici și considerente de securitate

🔍 Ce este max_input_vars?

max_input_vars este o directivă PHP care limitează cât de multe variabile de intrare poate accepta PHP (prin POST, GET și REQUEST). Acest lucru protejează serverul de atacurile hashing denial-of-service, dar afectează, de asemenea, operațiunile legitime în platformele CMS.

Valoarea implicită:

max_input_vars = 1000

Dacă depășiți această limită (de exemplu, salvarea unui meniu WordPress cu 1000 de elemente), PHP întrerupe intrarea, iar WordPress eșuează în mod silențios să salveze toate modificările.

📌 Când veți întâlni eroarea

  • Salvarea meniurilor de navigare mari
  • Salvarea paginilor cu multe câmpuri de formular
  • Utilizarea constructorilor de pagini cu layout-uri complexe
  • Pluginuri precum WPML, Elementor, WooCommerce

🛠️ Repararea erorii: 6 metode dovedite

✅ 1. Modificați php.ini (Cea mai bună metodă dacă aveți acces root sau VPS)

Aceasta este cea mai curată modalitate de a modifica max_input_vars dacă rulați propriul server:

Pasul 1: Localizați sau creați un fișier php.ini (depinde de server):

sudo nano /etc/php/8.2/apache2/php.ini

Înlocuiți 8.1 cu versiunea dvs. de PHP.

Pasul 2: Găsiți și editați directiva:

max_input_vars = 3000

Pasul 3: Reporniți serverul dvs. web:

sudo systemctl restart apache2

sau

sudo systemctl restart php8.2-fpm

✅ 2. Actualizați .htaccess (pentru utilizatorii Apache cu găzduire partajată)

Dacă nu puteți accesa php.ini, încercați să editați .htaccess în rădăcina instalației WordPress:

<IfModule mod_php.c>
php_value max_input_vars 3000
</IfModule>

⚠️ Acest lucru funcționează numai dacă mod_php este activat. Unele gazde utilizează în schimb PHP-FPM, caz în care această metodă nu va funcționa.

✅ 3. Utilizați wp-config.php (Nu este întotdeauna eficient)

WordPress nu acceptă în mod nativ suprascrierea max_input_vars, dar în unele configurații, adăugarea acestui lucru ar putea funcționa:

@ini_set('max_input_vars', '3000');

Plasați-l deasupra liniei care spune:

/* That's all, stop editing! Happy publishing. */

✅ 4. Modificați User php.ini sau php_value în cPanel

Dacă utilizați găzduire partajată cu cPanel:

  • Accesați cPanel > Selectați versiunea PHP > Opțiuni
  • Căutați max_input_vars și creșteți la 3000 sau mai mult
  • Salvați și verificați phpinfo() pentru a confirma

✅ Funcționează instantaneu – nu este necesară repornirea.

✅ 5. Utilizați .user.ini (pentru mediile PHP-FPM sau CGI)

Creați sau editați .user.ini în folderul rădăcină WordPress:

max_input_vars = 3000

Apoi reporniți PHP (sau așteptați 5 minute dacă gazda aplică modificările automat).

✅ 6. Pentru serverele NGINX PHP-FPM

NGINX nu utilizează .htaccess, deci configurați PHP prin pool FPM sau php.ini.

Editați fișierul /etc/php/8.1/fpm/php.ini:

max_input_vars = 3000

Apoi reporniți:

sudo systemctl restart php8.2-fpm
sudo systemctl restart nginx

🧪 Cum să confirmați că funcționează

Creați un fișier phpinfo.php în rădăcina WordPress:

<?php phpinfo(); ?>

Accesați-l prin browser: https://yourdomain.com/phpinfo.php

Căutați max_input_vars și verificați dacă este actualizat.

🧼 Nu uitați să ștergeți fișierul după aceea – acesta expune informații sensibile despre server.

🛡️ Cele mai bune practici

RecomandareMotivul
Nu setați max_input_vars la 999999Poate duce la vulnerabilități DoS
Rămâneți la 3000-5000Suficient pentru meniuri mari/constituitori de pagini
Monitorizați limitele de memorieVars de intrare mari = utilizare mai mare a memoriei
Utilizați phpinfo() sau ini_get() pentru depanareEvitați presupunerile

💡 Bonus: Creșteți alte limite conexe

Uneori, această problemă este însoțită de atingerea altor limite:

max_execution_time = 300
memory_limit = 512M
post_max_size = 64M
upload_max_filesize = 64M

Acestea pot merge și în php.ini, .htaccess sau .user.ini.

🧭 Gânduri finale

Eroarea max_input_vars este ușor de ratat, dar poate rupe caracteristici critice în tăcere în WordPress. Prin creșterea acestei limite prin metoda potrivită pentru mediul dvs. asigurați stabilitatea pentru meniurile complexe, conținutul multilingv și constructorii de pagini drag-and-drop.