Solucionar Errores de max_input_vars en PrestaShop
Si ves un aviso sobre max_input_vars al guardar la configuración de un módulo, significa que PHP está recibiendo más campos de formulario de los que puede procesar en una sola petición. Esta guía explica qué significa, por qué ocurre y cómo solucionarlo.
🧩 ¿Qué es max_input_vars?
max_input_vars es un parámetro de PHP que limita el número de variables de entrada (campos de formulario, parámetros de URL) que PHP aceptará en una sola petición HTTP. El valor predeterminado es 1000.
Cuando un formulario contiene más campos que este límite, PHP descarta silenciosamente todo lo que supera el umbral. Los campos a partir del 1001 nunca llegan al servidor — simplemente desaparecen.
❗ ¿Por qué ocurre con los formularios de configuración de módulos?
Algunos módulos tienen formularios de configuración que generan muchos campos — especialmente cuando permiten configurar ajustes por categoría, por tienda o por idioma. En una tienda con un catálogo grande, el número de campos se multiplica rápidamente:
- Un módulo con 10 ajustes × 50 categorías × 3 idiomas = 1.500 campos
Esto supera el límite predeterminado de PHP de 1.000, lo que provoca que el formulario se trunque silenciosamente.
Antes de que el módulo añadiera este aviso, no había ninguna indicación visible de que se estaban descartando campos. El formulario parecía guardarse con normalidad, pero los ajustes de categorías por encima del umbral se restablecían silenciosamente a valores vacíos o predeterminados. Si has visto configuraciones inconsistentes en tu módulo, puede que ésta sea la causa.
✅ Cómo solucionarlo
Necesitas aumentar el valor de max_input_vars en tu configuración de PHP. Un valor de 3000–5000 es una opción segura para la mayoría de las tiendas PrestaShop; para catálogos muy grandes, utiliza un valor mayor.
Opción 1 — Editar php.ini (recomendado)
Busca tu archivo php.ini y añade o actualiza la siguiente línea:
max_input_vars = 3000
Después de guardar, reinicia tu servidor web (Apache o PHP-FPM) para que el cambio surta efecto.
Opción 2 — Panel de control del hosting
La mayoría de los proveedores de hosting compartido permiten cambiar los ajustes de PHP desde el panel de control:
- Inicia sesión en tu panel de control (cPanel, Plesk, DirectAdmin, etc.)
- Busca la sección Configuración de PHP o Ajustes de PHP
- Localiza
max_input_varsy establece el valor en 3000 o superior - Guarda y aplica el cambio
Opción 3 — .user.ini (para entornos PHP-FPM)
Si estás en un hosting compartido que usa PHP-FPM y no puedes editar php.ini directamente, crea o edita un archivo .user.ini en el directorio raíz de tu PrestaShop:
max_input_vars = 3000
Opción 4 — .htaccess (solo para mod_php / Apache)
Si tu servidor usa Apache con mod_php (no PHP-FPM), puedes añadir esta línea a tu archivo .htaccess en la raíz de PrestaShop:
php_value max_input_vars 3000
Este método solo funciona con mod_php. Si tu servidor usa PHP-FPM, esta línea será ignorada o causará un error 500. Usa .user.ini en su lugar.
🔍 Cómo verificar que el cambio se ha aplicado
Después de aplicar el cambio, puedes verificarlo:
- Ve al back office de PrestaShop → Parámetros Avanzados → Información
- Busca
max_input_varsen la tabla de información de PHP - Confirma que el valor muestra el número actualizado
💾 Después de la corrección — vuelve a guardar la configuración del módulo
Una vez que max_input_vars ha aumentado:
- Abre la página de configuración del módulo
- Revisa tus ajustes — cualquier campo que haya sido descartado silenciosamente puede estar vacío o incorrecto
- Reconfigura lo que parezca incorrecto
- Guarda la configuración
✅ Lista de Verificación Final
-
max_input_varsaumentado a 3000 o más en la configuración de PHP - Servidor web o PHP-FPM reiniciado
- Cambio verificado en el back office → Parámetros Avanzados → Información
- Configuración del módulo revisada para detectar campos vacíos o incorrectos
- Configuración del módulo guardada de nuevo correctamente
¿Qué es max_input_vars y por qué afecta a la configuración del módulo?
max_input_vars es un ajuste de PHP que limita cuántos campos de formulario acepta PHP en una sola petición. El valor por defecto es 1000. Los módulos con ajustes por categoría o por idioma pueden generar miles de campos, haciendo que PHP descarte silenciosamente todo lo que supere el límite.
¿Cómo sé si max_input_vars está causando que mis ajustes no se guarden?
Si la configuración del módulo parece guardarse pero algunos ajustes siempre están vacíos o se reinician después de guardar, especialmente para categorías a partir de cierto punto, max_input_vars es probablemente la causa. Comprueba el valor actual en el back office de PrestaShop en Parámetros Avanzados y luego Información.
¿Qué valor debo establecer para max_input_vars?
Un valor de 3000 es seguro para la mayoría de las tiendas PrestaShop. Para catálogos muy grandes con muchas categorías e idiomas, establécelo más alto, como 5000 o más.
Estoy en un hosting compartido y no puedo editar php.ini. ¿Qué puedo hacer?
En hosting compartido con PHP-FPM, crea o edita un archivo .user.ini en el directorio raíz de tu PrestaShop y añade la línea max_input_vars = 3000. Los cambios pueden tardar hasta 5 minutos en surtir efecto. En hosting Apache con mod_php, puedes añadir php_value max_input_vars 3000 a tu archivo .htaccess.
Tras aumentar max_input_vars, ¿tengo que rehacer la configuración del módulo?
Sí. Abre la página de configuración del módulo, revisa cuidadosamente todos los ajustes en busca de los que estén en blanco o incorrectos por la pérdida silenciosa de datos anterior, rellénalos correctamente y guarda de nuevo.