🚀 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:

“Avertizare: A fost 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âte 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 nu reușește î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
  • Plugin-uri 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ă utilizaț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. Actualizarea .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:


php_value max_input_vars 3000

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

✅ 3. Utilizați wp-config.php (nu î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:

/* Asta e tot, nu mai editați! Publicare fericită. */

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

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

  • Mergeți la 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, așa că 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:

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 fi, de asemenea, în php.ini, .htaccess sau .user.ini.

🧭 Gânduri finale

Înțelegerea și remedierea erorii max_input_vars în WordPress. eroarea max_input_vars este o problemă subtilă, dar potențial perturbatoare în WordPress, care adesea trece neobservată – până când ceva critic se strică. Această directivă de configurare PHP controlează numărul maxim de variabile de intrare (cum ar fi câmpurile de formular sau elementele de meniu) pe care serverul dvs. le va procesa într-o singură cerere. Dacă această limită este prea mică, poate împiedica în tăcere părți ale site-ului dvs. să salveze modificările în mod corespunzător, în special în medii complexe.

Unde apare problema
Această eroare apare de obicei în următoarele scenarii:

Meniuri WordPress mari sau imbricate: Atunci când construiți structuri de meniu detaliate, este posibil ca doar o parte a meniului să fie salvată sau modificările să dispară după salvare.

  • Site-uri web multilingve: Plugin-uri precum WPML sau Polylang se bazează foarte mult pe trimiterea de formulare cu un număr mare de câmpuri de intrare pentru fiecare limbă.
  • Constructorii de pagini: Instrumentele drag-and-drop precum Elementor, WPBakery sau Divi pot întâmpina probleme la salvarea layout-urilor cu multe elemente sau rânduri.
  • Setări de teme sau pluginuri: Unele teme și pluginuri cu panouri de configurare bogate pot să nu salveze corect toate setările dacă se depășește limita.
  • Partea cea mai rea? Adesea nu există niciun mesaj de eroare vizibil – modificările pur și simplu nu se aplică, lăsându-vă să vă întrebați ce a mers prost.