2011-09-21 13 views
9

De alguna manera, tengo la sensación de que mi pregunta es muy directa y novata, pero traté de buscar en Google y no pude resolverlo. Tal vez no sabía las palabras clave correctas.¿Cómo respondo a un mensaje POST en mi script php?

De todas formas, tengo un script php corta para recibir información POST como a continuación:

<?php 
    if (isset($_POST['name']) && isset($_POST['info'])) 
    { 
     echo "<strong>Post received.</strong> <br/> <br/> <strong>Name:</strong> " . $_POST['name'] . "<br/><strong>Info:</strong> " . $_POST['info']; 
    } 
    else 
    { 
     echo "Post not received."; 
    } 
?> 

¿Cómo puedo tener mi script php enviar una respuesta a la página/cliente que llama? Si quiero hacer la llamada POST vía, digamos una aplicación C#, ¿cómo puedo saber si el POST fue exitoso? ¿Puede mi script php que está recibiendo el POST enviar una respuesta?

+1

Tal vez pueda utilizar el código HTTP satisfactorio http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#2xx_Success – Olli

+0

Un POST o GET también es una redirección que lleva al usuario a una nueva página. Esto significa que no puede enviarle nada a la página 'vieja' donde estaba el formulario. Por lo tanto, no puede enviar una respuesta 'hacia atrás', solo mostrarla o enviarla con la nueva página que está cargando. – LouwHopley

+0

@Nideo: a menos que esté en la web y use una llamada AJAX, OP también mencionó un cliente que no tiene que ser un navegador (con una página) sino solo una aplicación. – PeeHaa

Respuesta

6

La respuesta se envía solo a la persona que llama, por lo que no importa a través de qué canal se llame una secuencia de comandos (ya sea con/sin parámetros).

Por ejemplo, si realiza la solicitud a través de un navegador web, la respuesta se muestra en el navegador.

Si realiza una llamada AJAX, la respuesta se recibe en la función de devolución de llamada de javascript.

Y si como usted dice lo llamas a través de una aplicación de C# (por ejemplo, a través de HttpWebRequest), entonces el responce recibido en HttpWebResponse es lo que echo en su script

7

Está utilizando echo y es correcto. También header() se usa para comunicación avanzada.

Para obtener más información sobre cómo usar varias cabeceras HTTP 1.1, puede see the link.

3

Hay varias maneras de enviar información de vuelta.

Básicamente ya lo está haciendo por echo ing algún texto.

O puede devolver una página html o una cadena formateada (por ejemplo, JSON).

Cuestiones relacionadas