53 04/04/2026 07/04/2026 8 min

Cos’è max_input_vars

max_input_vars è un’impostazione di PHP che definisce il numero massimo di variabili di input che possono essere lette in una singola richiesta. In pratica conta i campi inviati da un form, i dati di una query POST, i valori di un array e, in generale, le variabili provenienti da GET, POST e COOKIE.

Il valore predefinito, in molte installazioni, è spesso 1000. Questo va bene per siti semplici, ma può diventare stretto per installazioni WordPress con molti campi, pagine builder, prodotti complessi, plugin di e-commerce, configuratori, moduli lunghi o siti con pannelli amministrativi molto ricchi.

Quando il limite viene superato, PHP non restituisce sempre un errore evidente. Spesso il sintomo è più subdolo: alcuni campi non vengono salvati, opzioni che spariscono, menu incompleti, prodotti con attributi mancanti, o configurazioni che sembrano aggiornarsi solo in parte.

Quando serve aumentarlo

Conviene intervenire su max_input_vars quando noti uno di questi segnali:

  • salvataggi parziali di pagine o articoli molto lunghi;
  • menu di WordPress tagliati o incompleti;
  • campi personalizzati che non vengono memorizzati;
  • prodotti WooCommerce con molti attributi o variazioni;
  • builder visuali che perdono parte delle impostazioni;
  • form complessi con molti checkbox, select o campi ripetuti.

Se il problema compare solo in alcune pagine molto grandi, è molto probabile che il limite sia quello. Se invece il sito ha errori PHP generici, timeout o problemi di memoria, il colpevole potrebbe essere un altro parametro, come memory_limit o max_execution_time.

Come verificare il valore attuale

Prima di aumentarlo, è utile capire qual è il valore effettivo in uso. In hosting condiviso il valore può cambiare tra configurazione globale, profilo PHP del dominio e file locali.

Da pannello hosting

In molti pannelli puoi vedere il valore nella sezione PHP del dominio. Cerca voci come PHP Settings, MultiPHP INI Editor, PHP Selector, Impostazioni PHP o Versione PHP.

Se il pannello mostra max_input_vars, verifica il numero impostato e se il dominio sta usando davvero quel profilo PHP.

Da WordPress

Se hai accesso al backend, plugin come Site Health o strumenti di diagnostica possono mostrare parte della configurazione PHP. In alternativa, un file temporaneo con phpinfo() consente di leggere il valore reale, ma va rimosso subito dopo il controllo per motivi di sicurezza.

Un file di esempio può essere:

<?php phpinfo();

Caricalo temporaneamente, aprilo via browser, cerca max_input_vars, poi eliminalo appena finito.

Valore consigliato

Non esiste un numero valido per tutti i siti. In generale:

  • 1000: valore standard, adatto a siti semplici;
  • 2000: buon compromesso per siti WordPress con qualche plugin in più;
  • 3000-5000: utile per e-commerce, builder e configurazioni molto articolate;
  • oltre 5000: da usare solo se hai un motivo concreto e hai verificato che il problema dipende davvero da questo limite.

Aumentarlo troppo non è una soluzione magica: se il sito genera form enormi o strutture troppo pesanti, è meglio anche ridurre la complessità dove possibile. Però, nella pratica, portarlo a 3000 o 5000 risolve molti casi senza introdurre effetti collaterali evidenti.

Come aumentarlo in hosting

Il metodo corretto dipende dal tipo di hosting. La via più sicura è sempre quella del pannello, perché evita conflitti tra file locali e configurazione globale.

cPanel

Se il provider lo consente, vai in cPanel > MultiPHP INI Editor oppure in Select PHP Version / PHP Options. Cerca max_input_vars e imposta un valore più alto, ad esempio 3000 o 5000.

Salva e attendi l’applicazione della configurazione. Poi ricarica la pagina problematica e verifica se i campi vengono salvati correttamente.

Plesk

In Plesk > Siti Web e Domini > Impostazioni PHP puoi modificare il valore nella sezione delle direttive PHP. Imposta max_input_vars e salva. Se il sito usa una versione PHP gestita da Plesk, la modifica si applica in modo pulito al dominio selezionato.

FastPanel

In FastPanel > Sito > PHP settings cerca il parametro max_input_vars. Se non è presente nella UI, può essere necessario aggiungerlo nelle impostazioni avanzate del profilo PHP del sito.

Hosting con file .user.ini

Su molti hosting condivisi, soprattutto con PHP-FPM o CGI, puoi intervenire creando o modificando il file .user.ini nella root del sito o nella directory interessata.

Prima fai una copia di sicurezza del file esistente, se presente. Poi aggiungi una riga come questa:

max_input_vars = 3000

Attenzione: su alcuni hosting la propagazione delle modifiche può richiedere alcuni minuti. Se non vedi subito l’effetto, attendi la cache della configurazione PHP.

Hosting con .htaccess

In certi ambienti Apache con mod_php, si può provare anche in .htaccess, ma non è il metodo più universale. Se il provider non supporta questa direttiva in .htaccess, il sito può mostrare errore 500. Per questo è una strada da usare solo se sai che il server la accetta.

Esempio:

php_value max_input_vars 3000

Se dopo la modifica compare un errore, rimuovi subito la direttiva e torna al metodo .user.ini o al pannello.

Con accesso SSH

Se il server è tuo e hai accesso amministrativo, puoi verificare la configurazione PHP direttamente nel file del pool PHP-FPM o nel file php.ini del dominio o della versione PHP in uso. Il percorso varia molto tra distribuzioni e pannelli, quindi conviene prima identificare il file realmente caricato con phpinfo() o con il comando CLI appropriato.

Un controllo rapido, utile per capire il valore usato dal PHP CLI, è questo:

php -i | grep -i max_input_vars

Nota però che il valore mostrato dal PHP CLI non coincide sempre con quello del sito web, soprattutto in hosting condiviso o con PHP-FPM separato per dominio.

Come capire se la modifica ha funzionato

Dopo aver aumentato il limite, fai una prova pratica sul contenuto che prima falliva. Il test migliore non è guardare solo il numero in configurazione, ma salvare davvero un form problematico e verificare che tutti i campi siano stati registrati.

Se il problema era un menu WordPress, controlla che tutte le voci siano ancora presenti dopo il salvataggio. Se era un prodotto WooCommerce, verifica attributi, variazioni e campi personalizzati. Se era un builder, apri la pagina e controlla che la struttura sia rimasta intatta.

Per una verifica tecnica, puoi anche ricontrollare il valore letto dal sito con phpinfo() o con una pagina diagnostica affidabile. L’esito atteso è che il valore mostrato corrisponda a quello impostato.

Problemi comuni dopo l’aumento

Aumentare max_input_vars di solito è sicuro, ma ci sono casi in cui il problema persiste. Le cause più frequenti sono queste:

  • la modifica è stata fatta nel file sbagliato;
  • il dominio usa un altro handler PHP;
  • la cache del pannello o di PHP-FPM non ha ancora ricaricato la configurazione;
  • il limite non era max_input_vars, ma un altro parametro;
  • un plugin o un tema genera input duplicati o eccessivi.

Se il salvataggio resta incompleto anche dopo aver portato il valore a 5000, conviene controllare anche:

  • memory_limit, perché un form molto grande può consumare più memoria;
  • post_max_size e upload_max_filesize, se ci sono allegati;
  • max_execution_time, se il salvataggio è lento;
  • eventuali errori nel log PHP o nel log del web server.

Un approccio sicuro in produzione

In produzione conviene procedere in modo graduale. Prima prova un aumento moderato, ad esempio da 1000 a 3000. Se il problema non si risolve, sali a 5000 solo dopo aver verificato che il sito ne abbia davvero bisogno.

È una buona pratica cambiare un parametro alla volta, testare subito il comportamento e tenere traccia del prima e dopo. Così, se qualcosa non va, il rollback è semplice e veloce.

Se gestisci più siti sullo stesso hosting, evita di applicare valori molto alti a livello globale senza motivo. Meglio intervenire solo sul singolo dominio che ha bisogno del cambio.

Rollback e ripristino

Se dopo la modifica noti effetti collaterali o non hai ottenuto miglioramenti, puoi tornare al valore precedente in pochi secondi. Ripristina il vecchio numero nel pannello o nel file di configurazione e salva di nuovo.

Nel caso di .user.ini o .htaccess, conserva sempre una copia del file originale prima della modifica. Se il sito va in errore, elimina solo la riga aggiunta e ricarica il servizio o attendi il refresh della configurazione.

Se non sei sicuro che il problema dipenda da max_input_vars, è meglio non alzarlo all’infinito: una configurazione più alta non sostituisce una diagnosi corretta.

In sintesi

max_input_vars è il limite di variabili che PHP accetta in una richiesta. Quando un sito complesso perde campi o salva solo una parte dei dati, aumentarlo è spesso la soluzione giusta. Il metodo più sicuro è passare dal pannello hosting o da .user.ini, testare subito il risultato e usare un valore proporzionato al caso reale.

Per la maggior parte dei siti, 3000 è un buon punto di partenza. Se il problema persiste, controlla anche gli altri limiti PHP e i log applicativi prima di salire ulteriormente.