2011-08-06 21 views
5

¿Alguien puede ayudarme en cómo puedo hacer para enviar los datos de un formulario (POST) a una URL usando PHP y cURL?¿Cómo presento los datos POST usando PHP y cURL?

Usando cURL, todo lo que quiero lograr es enviar los datos, yo no quiero ser redirigido ni obtener ningún tipo de salida (HTML ni TEXTO) acaba de enviar los datos.

Sería bueno saber si los datos se han enviado correctamente o no para manejar el error o la redirección.

Información adicional. La razón por la que creo que me redireccionan es porque una vez que ejecuto el cURL, la página de destino, que es un sitio web de un tercero, tiene un redireccionamiento que confirma al usuario que se han recibido sus datos, y por alguna razón, cuando enviar mis datos usando cURL su redirección afecta mi página, por lo tanto, mi página también redirige a su sitio de confirmación.

Gracias a todos.

Código de ejemplo:

$sub_req_url ="http://domain.com/util/request"; 
$ch = curl_init($sub_req_url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "id=64&session=1&k=B0EA8835E&firstname=Name&lastname=Lastname&company=Company%20Name&[email protected]&work_phone=123-456-7890"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POST, 1); 

$resp = curl_exec($ch); 
curl_close($ch); 

que editar este post para mostrar un ejemplo de lo que estoy usando. Debería haber publicado el código en primer lugar.

+1

mostrará el código que tiene. Parece que el problema está ahí. Tu pregunta no tiene información concreta para seguir. (También "¿Alguien puede ayudar?" No es una cuestión técnica). – mario

+0

Bueno ... ¿no le gustaría que el sitio para el que está PUBTANDO redirija? La mayoría de las páginas de inicio de sesión lo redirigirán a una página de inicio autenticada cuando haya iniciado sesión exitosamente. Dicho esto, si la redirección cambia la apariencia de la página en la que se encuentra, parece que no está manejando la respuesta de cURL correctamente. . Como dijo Mario, el código sería útil – wolv2012

+1

posible duplicado de [Pasando $ _POST valores con cURL] (http://stackoverflow.com/questions/28395/passing-post-values-with-curl) – mario

Respuesta

6
function post($requestJson) { 

    $postUrl = $this->endpoint."?access_token=".$this->token; 

    //Get length of post 
    $postlength = strlen($requestJson); 

    //open connection 
    $ch = curl_init(); 

    //set the url, number of POST vars, POST data 
    curl_setopt($ch,CURLOPT_URL,$postUrl); 
    curl_setopt($ch,CURLOPT_POST,$postlength); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,$requestJson); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    $response = curl_exec($ch); 

    //close connection 
    curl_close($ch); 

    return $response; 
} 
+0

Todavía me redireccionan, y creo que se debe a la página a la que envío los datos. Parece que una vez que esa página, el sitio web de un tercero, recibe mis datos, si se aprueban los datos, los redirige a una página de confirmación. ¿Hay alguna manera de enviar los datos y mostrar mi página de confirmación personalizada? y no su página? –

+0

Gracias por su respuesta –

0

¿Alguien puede ayudarme en cómo puedo hacer para enviar los datos de un formulario (POST) a una URL usando PHP y cURL?

Por favor, busque en el sitio o publique su código cómo lo hace. Parece que hacer la solicitud POST real no es tu problema concreto. En caso de que sea, echar un vistazo a esta pregunta relacionada: Passing $_POST values with cURL y php curl: i need a simple post request and retrival of page example

Usando cURL, todo lo que quiero lograr es enviar los datos, no quiero ser redirigido ni obtener ninguna tipo de salida (HTML o texto) simplemente envíe los datos.

Suponiendo $ch es su mango rizo:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false); 

El significado de las opciones son described on the PHP manual page. Luego haga su curl_exec y verifique el valor de retorno si la solicitud fue exitosa o no.

Una pregunta probablemente relacionado para esa parte es: Make curl follow redirects?

Cuestiones relacionadas