Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/11/2011, 06:38
reso
 
Fecha de Ingreso: noviembre-2011
Mensajes: 4
Antigüedad: 12 años, 5 meses
Puntos: 0
PHP curl login desde el navegador

Hola,

Soy nuevo en curl, y he conseguido el siguiente código que se conecta a facebook i inicia sesion con un usuario y contraseña, hasta aquí bien.

El problema es que una vez en la pagina principal, si intento navegar por facebook me pide que inicie session. Es posible iniciar sesión usando CURL y después navegar usando el navegador web?? Puede que deba pasar la cookie de session al navegador?

Grácias por la ayuda!

<?php

/* EDIT EMAIL AND PASSWORD */
$EMAIL = "xxxx";
$PASSWORD = "xxxx";
$cookie="";

$a = cURL("https://login.facebook.com/login.php?login_attempt=1",true,null,"email=$EMAIL &pass=$PASSWORD");
preg_match('%Set-Cookie: ([^;]+);%',$a,$b);
$c = cURL("https://login.facebook.com/login.php?login_attempt=1",true,$b[1],"email=$EMAIL&pass=$PASSWORD");
preg_match_all('%Set-Cookie: ([^;]+);%',$c,$d);

for($i=0;$i<count($d[0]);$i++)
$cookie.=$d[1][$i].";";

/*
NOW TO JUST OPEN ANOTHER URL EDIT THE FIRST ARGUMENT OF THE FOLLOWING FUNCTION.
TO SEND SOME DATA EDIT THE LAST ARGUMENT.
*/
echo cURL("http://www.facebook.com/",null,$cookie,null);

function cURL($url, $header=NULL, $cookie=NULL, $p=NULL)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, $header);
curl_setopt($ch, CURLOPT_NOBODY, $header);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

if ($p) {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
}
$result = curl_exec($ch);

if ($result) {
return $result;
} else {
return curl_error($ch);
}
curl_close($ch);
}

?>