PHP の模擬ログインに問題があります
ネットで Renren ログインの模擬に関する記事を読みましたが、「URL はここに移動しました」と表示されます。原因は何ですか?ありがとうございます。コードは次のとおりです:
PHP コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
$login_url = 'http://passport.renren.com/PLogin.do';
$post_fields['email'] = 'xxx@gmail.com';
$post_fields['password'] = 'xxx';
$post_fields['origURL'] = 'http://www.renren.com/indexcon';
$post_fields['domain'] = 'renren.com';
//cookie文件存放在网站根目录的temp文件夹下
$cookie_file = tempnam('./temp','cookie');
$ch = curl_init($login_url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_exec($ch);
curl_close($ch);
//带上cookie文件,访问人人网首页
$send_url='http://home.renren.com/Home.do';
$ch = curl_init($send_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
$contents = curl_exec($ch);
curl_close($ch);
//清理cookie文件
unlink($cookie_file);
//输出人人网首页的内容
print_r($contents);
ログイン後にコピー
------解決策----------- --- ------
以下の内容は再投稿です。
過去 2 日間、ブラウザでログイン フォームの送信が完了した後、URL がここに移動しました。 。
ログイン後にホームページを開くには、毎回リンクをクリックする必要があります。これは私が望んでいることではありません。
説明をもう一度読み、パラメーター -L
が次のとおりであることを確認します。 -L/--location Follow Location: ヒント (H)
--location-trusted Follow Location : そして認証を他のホストに送信します (H)
少し衝動的に、これが問題の鍵だと感じます:
curl --output "./rr.html" -- dump-header "d_cookie01" - -cookie-jar "c_cookie01" --create-dirs --location --data "email=test&password=test&autoLogin=ture&origURL=&domain=renren.com&formName=&method=&isplogin=true&submit=Login" http: //www.renren.com /PLogin.do
ログイン後のwowowoのホームページがダウンロードされます! !
d_cookie01 (c_cookie01 の内容が含まれていますが、--cookie-jar の方が簡潔です) をよく見てください。
場所: http:/ /www.renren.com/callback.do?t=9d5201d04d44156fb070037e9493f5fd3&origURL=http%3A%2F%2Fwww.renren.com%2FHome.do&needNotify=false
送信後もジャンプする必要があることがわかりました。ログイン フォーム、および - L でジャンプ リンクをたどります。
次の 2 つの手順で実行することもできます。
1. 最初にフォームを送信し、返された Cookie を保存します
curl --output "./rr. html" --dump-header "d_cookie01" --data "email=test&password=test&autoLogin=ture&origURL=&domain=renren.com&formName=&method=&isplogin=true&submit=Login" http://www.renren.com/PLogin。 do
2. d_cookie01 で場所を見つけて、Cookie と場所を一緒に送信します
curl --output "./rr.html" --dump-header "d_cookie01" --location http://www renren.com/callback.do?t=9d5201d04d44156fb070037e9493f5fd3&origURL=http%3A%2F%2Fwww.renren.com%2FHome.do&needNotify=false
ログイン後、ホームページが表示されます。