2011-08-06 12 views
7

Estoy desarrollando una forma en la que compromete a enviar los datos recogidos a un sitio web de terceros, en forma de: http://www.domain.com/page?key=value&key2=value2¿cómo puedo evitar ser redirigidos con PHP cURL

decido usar cURL como yo no he encontrado una alternativa que me convenza

El problema que estoy corriendo es que una vez que se envía el formulario, se ejecuta cURL pero me redireccionan al dominio que especifiqué. En cambio, quiero redirigir al usuario a una página de confirmación dentro de mi dominio y no al sitio web de un tercero.

Aquí se muestra un ejemplo del código que estoy usando:

$URL="otherserver.domain.com"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"http://$URL"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "key=value2&key2=value2&key3=value3"); 
curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close ($ch); 

¿Cómo puedo evitar que se redirige a otherserver.domain.com?

No dude en decirme si cree que, en lugar de utilizar cURL, existe una forma mejor de enviar los datos al sitio web de un tercero.

Gracias a todos de antemano

Respuesta

4

Pruebe esto:

<?php 
$url = "http://***.."; 
$ch = curl_init($url); 
$opts = array(CURLOPT_RETURNTRANSFER => 1, 
      CURLOP_HEADER => 1, 
      CURLOPT_FOLLOWLOCATION => 0, 
      CURLOPT_POST => 1, 
      CURLOPT_POSTFIELDS => "foo=ba"); 
curl_setopt_array($ch, $opts); 
echo curl_exec($ch); 
?> 
+0

¿Puedes escribir un ejemplo? Aún recibo una redirección, independientemente de que use 0 o 1 para CURLOPT_FOLLOWLOCATION. En realidad estoy obteniendo el contenido de la url que especifiqué. Todo lo que quiero es solo enviar los datos recopilados –

+0

Encontré el problema, y ​​fue debido al sitio web de terceros que estaba causando la redirección. –

5
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 

no dará lugar a la producción

y

curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0); 

ignorará las redirecciones (por lo que cuando http://google.com/ lo transfiere a https://google.us/ esto ignorarlo)

+0

Necesito ejecutar una URL desde un archivo .php. No necesito tomar su salida o hacer nada. Todo lo que quiero hacer es simplemente llamar a una URL, por ejemplo: http://www.domain.com para que el servidor reciba una solicitud de la URL y ejecute la solicitud. ¿Alguna ayuda? –