1

我一直在玩这个curl facebook 登录脚本,只是想掌握 curl 中的一些功能,但似乎我无法注册 cookie:

脚本

     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;
    }

我有一个名为 cookies.txt 的文本文件,它与脚本位于同一目录中,但是在运行此脚本后,文件中没有写入任何内容,因此没有创建 cookie,当尝试浏览其他网页时,这是一个大问题与您必须保持登录的网站相同。

我哪里错了?

4

1 回答 1

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; 
}
于 2012-07-21T11:23:38.873 回答