2012-02-22 35 views
33

Estoy usando WAMP en mi máquina local, cuando se envía una FORMA (método = "POST") con 2000 campos de entrada, puedo leer solo 1001 _POST variable. Es decir, con el depurador de Netbeans puedo ver claramente que el tamaño de _POST siempre es 1001 si hay más de 1001 campos de entrada en el formulario.¿Cómo aumentar la variable POST máxima en PHP?

Utilicé este http://ideone.com/GAw14 código Java para generar formularios con N campos de entrada y probados.

Lo mismo está funcionando bien en otra máquina (WAMP), donde puedo ver todas las variables POST.

Por favor, ayúdame a solucionar mi problema.

+1

¿Por qué no tomar el php.ini de la otra máquina y compararlo con su máquina actual y ver qué se debe poner para las variables 'post_max_size', etc.? –

+0

¿Estás usando Suhosin (PHP endurecido)? – jprofitt

+0

No sé si eso es php o el navegador web que limita ... –

Respuesta

76

PHP 5.3.9 introdujo la opción de configuración max_input_vars, que tiene un valor predeterminado de 1000. Consulte la sección Runtime Configuration del manual de PHP. El valor predeterminado y el registro de cambios se encuentran en la parte superior de la página.

El valor se puede cambiar actualizando el archivo php.ini del servidor, agregando un archivo .htaccess o adding a line to httpd.conf.

+0

¡Perfecto! Gracias. Tienes razón :) –

+1

El crédito va para un compañero de trabajo que tuvo este problema ayer y luego fue lo suficientemente bueno para compartir sus hallazgos con el equipo :) – lightster

+1

Para alguien buscando en el futuro, encontré que un servidor cPanel predeterminado a partir de 2013-03-15 limitaba el número de variables de entrada a 512. Algunas de nuestras secuencias de comandos pasaron significativamente más que eso y añadiendo max_input_vars a php .ini solucionó el problema. –

-1

Sospecho que el problema está en la cantidad de datos que recibirá su solicitud de POST. No hay ninguna configuración que limite el número de $ _POST vars que se pueden establecer. Sin embargo, hay un límite de memoria para los datos POST que es de 8 MB por defecto.

En su archivo php.ini intente modificar el valor de post_max_size y configúrelo en un valor más alto. No olvide reiniciar Apache después de realizar el cambio.

+0

Modifiqué post_max_size a 81M también 0 y reinicié WAMP aún existe el problema. –

17

Si usa Suhosin con PHP endurecido, es posible que esté alcanzando un límite máximo de variables que impone. En su php.ini, puede simplemente añadir

[suhosin] 
suhosin.request.max_vars = 1000 
suhosin.post.max_vars = 1000 

cambiar 1000 a lo que usted quiere y reiniciar su servidor web.

Me encontré con esto en la página Permisos de Drupal cuando había una gran cantidad de módulos instalados con una gran cantidad de roles, lo que dio como resultado un montón de casillas de verificación. Solo salvaría un cierto número de ellos antes de que nada fuera ignorado.

Suena como que este no es probablemente su problema, pero como es bastante probable que alguien en el futuro se tropiece con esto cuando busca algo relacionado, lo anotaré porque me llevó años descubrirlo cuando estaba perplejo

+0

Gracias. No estoy usando Suhosin. –

+1

No hay suhosin para php5.4 o php5.5 :( – ZiTAL

0

He resuelto este problema. Abra el archivo de configuración php.ini y añadir estas líneas

[suhosin]

suhosin.post.max_vars = 20000

suhosin.request.max_vars = 20000

3

he resuelto mi $ _POST máximo -problema entradas añadiendo lo siguiente a php.ini:

max_input_vars = 5000 
suhosin.request.max_vars = 5000 
suhosin.post.max_vars = 5000 

Nota los suhosin.request.max_vars también.

+0

'max_input_vars' encajó perfectamente en mi caso :) – Vineet

Cuestiones relacionadas