Passa al contenuto principale

Correggere gli Errori max_input_vars in PrestaShop

Se vedi un avviso su max_input_vars quando salvi la configurazione di un modulo, significa che PHP sta ricevendo più campi del modulo di quanti ne possa elaborare in una singola richiesta. Questa guida spiega cosa significa, perché accade e come risolverlo.

🧩 Cos'è max_input_vars?

max_input_vars è un'impostazione PHP che limita il numero di variabili di input (campi del modulo, parametri URL) che PHP accetterà in una singola richiesta HTTP. Il valore predefinito è 1000.

Quando un modulo contiene più campi di questo limite, PHP scarta silenziosamente tutto ciò che supera la soglia. I campi dal 1001 in poi non raggiungono mai il server — semplicemente scompaiono.


❗ Perché accade con i moduli di configurazione?

Alcuni moduli hanno moduli di configurazione che generano molti campi — specialmente quando consentono di configurare le impostazioni per categoria, per negozio o per lingua. In un negozio con un catalogo grande, il numero di campi si moltiplica rapidamente:

  • Un modulo con 10 impostazioni × 50 categorie × 3 lingue = 1.500 campi

Questo supera il limite predefinito di PHP di 1.000, causando il troncamento silenzioso del modulo.

Rischio di perdita silenziosa dei dati

Prima che il modulo aggiungesse questo avviso, non c'era alcuna indicazione visibile che i campi venissero scartati. Il modulo sembrava salvarsi normalmente, ma le impostazioni per le categorie oltre la soglia venivano silenziosamente reimpostate su valori vuoti o predefiniti. Se hai riscontrato impostazioni incoerenti nella configurazione del modulo, questa potrebbe essere la causa.


✅ Come risolvere il problema

Devi aumentare il valore di max_input_vars nella configurazione PHP. Un valore di 3000–5000 è una scelta sicura per la maggior parte dei negozi PrestaShop; per cataloghi molto grandi, usa un valore più alto.

Opzione 1 — Modificare php.ini (consigliato)

Trova il file php.ini e aggiungi o aggiorna la seguente riga:

max_input_vars = 3000

Dopo aver salvato, riavvia il server web (Apache o PHP-FPM) per applicare la modifica.

Opzione 2 — Pannello di controllo dell'hosting

La maggior parte dei provider di hosting condiviso consente di modificare le impostazioni PHP dal pannello di controllo:

  1. Accedi al pannello di controllo (cPanel, Plesk, DirectAdmin, ecc.)
  2. Trova la sezione Configurazione PHP o Impostazioni PHP
  3. Individua max_input_vars e imposta il valore a 3000 o superiore
  4. Salva e applica la modifica

Opzione 3 — .user.ini (per ambienti PHP-FPM)

Se sei su un hosting condiviso che usa PHP-FPM e non puoi modificare php.ini direttamente, crea o modifica un file .user.ini nella directory radice di PrestaShop:

max_input_vars = 3000

Opzione 4 — .htaccess (solo per mod_php / Apache)

Se il server usa Apache con mod_php (non PHP-FPM), puoi aggiungere questa riga al file .htaccess nella radice di PrestaShop:

php_value max_input_vars 3000
warning

Questo metodo funziona solo con mod_php. Se il server usa PHP-FPM, questa riga verrà ignorata o causerà un errore 500. Usa .user.ini al posto di .htaccess per PHP-FPM.


🔍 Come verificare che la modifica sia stata applicata

Dopo aver applicato la modifica, puoi verificarla:

  1. Vai nel back office di PrestaShop → Parametri Avanzati → Informazioni
  2. Cerca max_input_vars nella tabella delle informazioni PHP
  3. Conferma che il valore mostri il numero aggiornato

💾 Dopo la correzione — risalva la configurazione del modulo

Una volta aumentato max_input_vars:

  1. Apri la pagina di configurazione del modulo
  2. Controlla le impostazioni — qualsiasi campo scartato silenziosamente in precedenza potrebbe essere vuoto o errato
  3. Riconfigura ciò che sembra sbagliato
  4. Salva la configurazione

✅ Lista di Controllo Finale

  • max_input_vars aumentato a 3000 o più nella configurazione PHP
  • Server web o PHP-FPM riavviato
  • Modifica verificata nel back office → Parametri Avanzati → Informazioni
  • Configurazione del modulo riaperta e controllata per campi vuoti o errati
  • Configurazione del modulo salvata nuovamente correttamente

Cos'è max_input_vars e perché influisce sul salvataggio della configurazione del modulo?

max_input_vars è un'impostazione PHP che limita il numero di campi del modulo che PHP accetterà in una singola richiesta. Il valore predefinito è 1000. Quando la configurazione del modulo genera più campi di questo limite, PHP scarta silenziosamente tutto ciò che lo supera e alcune impostazioni non vengono salvate.

Come faccio a sapere se max_input_vars sta causando problemi nel mio negozio?

I sintomi principali sono impostazioni che sembrano salvarsi correttamente ma in realtà vengono ripristinate ai valori predefiniti, specialmente per le categorie oltre un certo numero. Se vedi l'avviso max_input_vars nella pagina di configurazione del modulo, questo è il problema.

Qual è il valore consigliato per max_input_vars in un negozio PrestaShop?

Un valore di 3000 è adatto alla maggior parte dei negozi PrestaShop. Per cataloghi molto grandi con molte categorie, lingue e negozi multipli, considera un valore ancora più alto come 5000 o 10000.

Come posso verificare che la modifica a max_input_vars sia stata applicata correttamente?

Vai nel back office di PrestaShop, poi in Parametri Avanzati, sezione Informazioni. Cerca max_input_vars nella tabella delle informazioni PHP e verifica che il valore mostri il numero aggiornato.

Dopo aver aumentato max_input_vars, devo fare qualcosa con la configurazione del modulo?

Sì. Riapri la pagina di configurazione del modulo e controlla tutti i campi, specialmente quelli relativi alle categorie che potrebbero essere stati scartati silenziosamente in precedenza. Riconfigura i campi vuoti o errati e salva nuovamente la configurazione.

🆘 Hai bisogno di aiuto?