#

Max Input Vars en PHP

El extraño caso de un POST que sólo enviaba en la petición a servidor una parte de la información que debía enviar. ¿El problema? Os lo contamos.
FPM | Laravel | PHP

Ejecutando pruebas de integración sobre un determinado formulario de Polaris con un montón de campos y atributos, nos percatamos de que al realizar el guardado sólo una parte de esos atributos se modificaban, quedando los restantes intactos. Es más, observamos que el proceso siempre «cortaba» en el mismo campo.

Investigando más en profundidad, descubrimos que para ese mismo campo algunos de sus atributos no estaban «llegando» en la petición al servidor. ¿Qué estaba ocurriendo?

Analizando una traza de la petición haciendo uso de la maravillosa consola de Google Chrome descubrimos que, de los ochenta y pico campos del formulario, sólo se estaban enviando sesenta y algo (!!!!) y que, encima, del último ni siquiera todos sus atributos. ¿Pero esto qué es? La respuesta no estaba en el viento, sino en nuestro querido FastCGI Process Manager (FPM).

MAX_INPUT_VARS

Max Input Vars es la propiedad de configuración que determina el número máximo de variables que el servidor puede manejar en una sola petición (a nivel GET/POST/Cookies). Por defecto, la propiedad se establece a 1000. Nuestro formulario evidentemente superaba dicho límite, por lo que la información enviada se truncaba.

Solución: editar el fichero php.ini y establecer un valor superior sobre dicha propiedad. Para los despistados, dicho fichero suele encontrarse en la siguiente ruta (hablo de Ubuntu):

[php]

/etc/php/7.1/fpm/php.ini

[/php]

Tras ello, no olvides reiniciar el servicio FPM. De lo contrario, los cambios no tomarán efecto

[php]

sudo service php7.1-fpm restart

[/php]

CONOCIMIENTO / Descargables

EBook gratuito
eficiencia OEE

Asistimos tu proceso de diseño y análisis de datos

Descubre las particularidades del indicador OEE, cómo automatizar su cálculo y que requisitos deben cumplir tus procesos de producción para implementarlo.