2010-07-29 18 views
17

Nunca he usado PHP, pero ahora mismo necesito escribir un archivo PHP que muestre en un archivo de registro el contenido del cuerpo de una solicitud HTTP POST.¡No puedo leer el cuerpo de mi solicitud POST HTTP con PHP!

He leído que se puede acceder a las variables del cuerpo a través de la matriz _POST. Desafortunadamente, parece estar vacío, ¡aunque estoy bastante seguro de que hay cosas en el cuerpo de mi solicitud HTTP!

¿Qué debo usar para estar 100% seguro del contenido de mi cuerpo HTTP?

Gracias.

+3

¿Qué código han intentado? – strager

Respuesta

53
$post_body = file_get_contents('php://input'); 

php://input le permite leer los datos POST primas. Es una alternativa que requiere menos memoria que $HTTP_RAW_POST_DATA y no necesita ninguna directiva php.ini especial. php://input no está disponible con enctype = "multipart/form-data".

(Fuente: http://php.net/wrappers.php)

+2

Una cosa a tener en cuenta: estaba publicando en mi sitio web como www.example.com/test y no pude obtener la entrada php: // para trabajar. Resulta que tuve que publicar en www.example.com/test/index.php – AlBeebe

+0

Lo necesitaba de nuevo hoy y tuve la oportunidad de usar este truco. Muy eficiente. Gracias de nuevo. –

+0

De nada. :) – salathe

0

Tal vez mal escrito él. El nombre correcto de la matriz $_POST.

probar este

<?php 
var_dump($_POST); 

y ver qué pasa.

2

La variable global es $_POST, no _POST. También es posible que esté enviando los datos a través del método GET, en cuyo caso deberá usar la variable global $_GET.

Si desea comprobar el método POST o el GET, puede usar la variable global $_REQUEST. código de ejemplo a continuación:

<html> 
<body> 
<form method="POST" action="postdata.php"> 
<input type="text" name="mydata" /> 
<input type="submit"> 
</form> 
</body> 
</html> 

archivo postdata.php:

<?php 

$result = $_POST['mydata']; 
echo $result; 
+0

Perdón por la respuesta tardía pero he convencido a mi cliente de usar un método GET. Pero voy a tener todas las respuestas aquí en mente para cualquier necesidad futura. Gracias a todos ! –

Cuestiones relacionadas