PHP faltan algunos valores $ _POST pero están presentes en php: // input
Tengo un formulario html muy grande (que contiene una tabla con filas, que contiene múltiples entradas), que necesito enviar al script PHP a través de la solicitud POST. El problema es que algunos valores no aparecen y están ausentes en el superglobal $ _POST de PHP.
Verifiqué (usando la extensión Firebug) que los valores realmente son enviados al servidor por el navegador.
$ _ POST se llena, pero faltan algunos valores.
Verifiqué qué es una solicitud sin procesar usando:
$raw_post = file_get_contents('php://input');
y la cadena devuelta tiene los valores. Simplemente no se analizan en la matriz $ _POST. Lo extraño que noté es que parece que los valores de entrada php: // se cortan después de cierta longitud, y el resto de la cadena no llega a $ _POST.
ensé en post_max_size y memory_limit y los configuré en valores grandes:
memory_limit = 256M
post_max_size = 150M
pero de acuerdo con la documentación de php $ _POST no debe contener ningún valor si la solicitud realizada es mayor que post_max_size.Debido al gran tamaño del formulario y la solicitud, no puedo publicarlo aquí, pero puedo publicar el script php que solía depurar el problema:
var_dump($file = file_get_contents('php://input'));
var_dump($_POST);
//... then i parsed the $file
Versión del servidor: Apache / 2.2.9 (Debian)
ersión @PHP: PHP 5.3.2-0.dotdeb.2
¿Puede alguien explicar la razón de un comportamiento PHP tan extraño, y qué debo hacer (cambiar la configuración de php, el código?) Para usar la matriz $ _POST mientras procesa el formulario?
EDIT: Para ser claros: no solo faltan los valores. $ _POST tampoco contiene estas claves.
ex. fragmento de publicación sin procesar:
t_dodparam%5B198%5D=&t_dodparam2%5B198%5D=&t_kolejnosc%5B198%5D=199&n_indeks=201&n_wartosc=testtesttest
Key 't_dodparam' está en la publicación y tiene la clave 198. Faltan el resto de parámetros (por ejemplo, t_dodparam2 está en la publicación, pero no tiene una clave como 198, y no existe una clave como n_wartosc en $ _POST)