2012-07-20 97 views
1

我一直在玩this curl facebook登录脚本有一段时间只是试图抓住curl中的一些功能,但似乎我无法获得cookie注册:php curl cookie没有注册

PHP脚本

 function facebookLogin(){ 
     $login_email = 'email'; 
     $login_pass = 'pass'; 

     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, 'http://www.facebook.com/login.php'); 
     curl_setopt($ch, CURLOPT_POSTFIELDS,'email='.urlencode($login_email).'&pass='.urlencode($login_pass).'&login=Login'); 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_HEADER, 0); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
     curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt"); 
     curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt"); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"); 
     curl_setopt($ch, CURLOPT_REFERER, "http://www.facebook.com"); 
     $page = curl_exec($ch); 
     echo $page; 
    } 

我有一个名为cookie.txt的是在同一目录中脚本的文本文件,但运行此脚本没有数据被写入到文件后,因此没有创建的cookie当试图在同一网站上浏览其他网页时,这是一个大问题你必须继续登录。

我在哪里出错了?

回答

0

事实证明,即使cookies.txt文件为空,它也会被注册,但您需要确保在尝试浏览本网站的其他部分时调用此文件,例如

function facebookGoToMessages(){ 
    facebookLogin(); 

    $ch = curl_init ("http://www.facebook.com/messages"); 
    curl_setopt ($ch, CURLOPT_COOKIEFILE, "cookies.txt"); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"); 
    curl_setopt($ch, CURLOPT_REFERER, "http://www.facebook.com"); 
    $page = curl_exec ($ch); 
    echo $page; 
}