ホームページ >バックエンド開発 >PHPチュートリアル >PHP シミュレートされたログインの問題

PHP シミュレートされたログインの問題

WBOY
WBOYオリジナル
2016-06-13 13:30:171370ブラウズ

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

ログイン後、ホームページが表示されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:XAMPの移行方法次の記事:XAMPの移行方法