1

このcurlfacebookログインスクリプトをしばらく使って、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;
    }

スクリプトと同じディレクトリにあるcookies.txtというテキストファイルがありますが、このスクリプトを実行した後、ファイルに何も書き込まれないため、Cookieは作成されません。これは、で他のWebページを探索しようとするときに大きな問題になります。ログインし続ける必要があるのと同じWebサイト。

どこが間違っているのですか?

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 に答える