Elmoi.com

...todo lo que necesitas saber

  • Aumentar fuente
  • Fuente predeterminada
  • Disminuir fuente

Enviar valores POST con cURL

Si tienes un formulario de otra web y quieres enviar variables por POST para trabajar directamente con el resultado del submit primero tienes que analizar el formulario objetivo. Antes de continuar advierto que necesitas tener intalada la libreria curl en tu servidor, si quieres ver si lo tienes instalado puedes usar la funcion en php phpinfo(). Como ejemplo ilustrativo vamos a analizar el formulario para iniciar sesión en hi5.com, si nos vamos al código fuente y simplificamos muchas cosas en esencia lo que quedaría fuera esto:

<form method="POST" action='http://www.hi5.com/friend/login.do’>
<input type="text" name= "email">
<input type="password" name= “password">

<input type="submit" value="Iniciar Sesion" >
</form>

Entonces para iniciar sesión automaticamente enviando los valores por POST tenemos que crear una página con el siguiente código en php:

<?
$ch = curl_init('http://www.hi5.com/friend/login.do');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // Retornar la pagina de resultados en una variable
curl_setopt ($ch, CURLOPT_POSTFIELDS, "email=TuNick@TuProveedor.com&password=TuPassword");
$resultado = curl_exec ($ch);
curl_close ($ch);
echo $resultado;
?>

Obviamente tienes que cambiar en el script anterior el valor de email y password por el tuyo.

En $resultado se guarda el código fuente de la página objetivo del submit así que podemos hacer maravillas extrayendo algún valor o resultado de interés del resultado. Si no necesitas guardar en una variable el código fuente de la página web sino que queremos mostrar directamente el resultado de la misma entonces el script en php quedaría así:

<?
$ch = curl_init('http://www.hi5.com/friend/login.do');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, "email=TuNick@TuProveedor.com&password=TuPassword");
curl_exec ($ch);
curl_close ($ch);
?>


Espero que te sea de mucha utilidad esta explicación en la que traté de ir al grano y enseñar con un ejemplo (como a mi me gusta) así que si algo no entendiste por favor deja tu pregunta en los comentarios.


Comentarios
Añadir nuevo
Ziney  - The URL has moved here   |2010-05-03 19:36:05
Me sale ese mensaje cuando ejecuto el script, Y cu ando doy clic en el enlace se
redirecciana al HI5.

http://www.hi5.com/friend/displayLoggedinHome.do ;jsessi
onid=aLe_HvN-7U9g

cuando agrego este:
curl _setopt($ch, CURLOPT_FOLLOWLOCATION,
1);

En el h i5 sale en mi pagina. Pero no sale en la zona de i nicio (http://
www.hi5.com/friend/displayLoggedinHo me.d)

Dice : ¡Oh.. Oh! No pudimos cumplir
con tu solicitud.



Anónimo   |2010-05-04 10:24:54
No entiendo muy bien, dices que si agregas curl _s etopt($ch, CURLOPT_FOLLOWLOCA
TION,
1); el hi5 sale en tu pagina....esto quiere decir que sales como loguead
o o no? o sale en tu perfil pero no estas l ogueado, no entiendo eso.
Escribir comentario
Nombre:
Email:
 
Título:
 

!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."