Red de conocimiento informático - Material del sitio web - Cómo obtener datos POST locales usando PHP

Cómo obtener datos POST locales usando PHP

Método 1, el método más utilizado es: $_POST['fieldname'];

Nota: solo se pueden recibir datos enviados con Content-Type: application/x-www-form-urlencoded

Explicación: Los datos del formulario POST

Método 2, file_get_contents("php://input");

Explicación:

Permitir de POST lee datos sin procesar.

Pone menos presión sobre la memoria que $HTTP_RAW_POST_DATA y no requiere ninguna configuración especial de php.ini.

php://input no se puede utilizar con enctype="multipart/form-data".

Explicación:

Para datos POST sin tipo de contenido especificado, puede usar file_get_contents("php://input");

De hecho, puedes utilizar este método para recibir cualquier dato POST usando PHP. No tiene en cuenta el tipo de contenido, incluidas las secuencias de archivos binarios.

Entonces, usar el método 2 es el método más seguro

Método 3, $GLOBALS['HTTP_RAW_POST_DATA'];

Descripción:

Siempre genera la variable $HTTP_RAW_POST_DATA que contiene los datos POST sin procesar.

Esta variable se genera sólo cuando se encuentran datos de un tipo MIME no reconocido.

$HTTP_RAW_POST_DATA no se aplica a los datos del formulario enctype="multipart/form-data "

Si el POST contiene datos que PHP no puede reconocer, puede usar $GLOBALS['HTTP_RAW_POST_DATA' ] para hacerse cargo.

Por ejemplo texto/xml o jabón, etc.

Explicación:

$GLOBALS['HTTP_RAW_POST_DATA'] guarda los datos originales enviados por POST.

$_POST o $_REQUEST guarda datos formateados como clave=>valor por PHP.

Sin embargo, si $GLOBALS['HTTP_RAW_POST_DATA'] guarda datos POST depende de la configuración del tipo de contenido, es decir, al publicar datos, el tipo de contenido: application/x-www-form-urlencoded debe ser especificado explícitamente. urlencoded debe especificarse explícitamente para que los datos POST se almacenen en $GLOBALS['HTTP_RAW_POST_DATA']