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.
José

José

Co-founder | CTO Software Engineer

Más melómano que geek, aunque más de crear software que de otras muchas cosas

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


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

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


sudo service php7.1-fpm restart

Dónde Estamos

Espacio RES

Avda. República Argentina 25 Planta 9, 41011 Sevilla

Cómo Contactar

Envíanos un Email

Conocenos más

Contacta con nosotros

Visita nuestra sección de contacto y pídenos lo que necesites

Share This