ホームページ >バックエンド開発 >PHPチュートリアル >Renren.com で友人が遭遇したログイン問題のシミュレーション

Renren.com で友人が遭遇したログイン問題のシミュレーション

WBOY
WBOYオリジナル
2016-06-23 13:59:55949ブラウズ

我用网上别人的模拟登陆代码
$username="xxx@126.com";//$_POST["username"];   

$password="xxx";//$_POST["パスワード"];   

$message="1";//$_POST["message"];   

if($message!=""){

updateRenren($message,$username,$password,0);   

echo $message;   

}

function updateRenren($status,$renren_username,$renren_password,$tried_times){
if($tried_times>=3){
falseを返します。   
}

$cookie_jar=tempnam('./cookie','renren');   
$ch=&getCurl($cookie_jar,"POST","http://www.renren.com/ajaxLogin/login");   
curl_setopt($ch,CURLOPT_POSTFIELDS,'email='.urlencode($renren_username).'&password='.urlencode($renren_password).'&origURL=http%3A%2F%2Fwww.renren.com%2FHome&domain=renren.com&key_id =1&captcha_type=web_login&_rtk=90ae5f12');   
$str=&sendAndResult($ch);   
$ch = &getCurl($cookie_jar,"GET","http://www.renren.com/123456");  
$ret = &sendAndResult($ch);   
}

関数 &getCurl($jar,$method,$url){
$ch=curl_init();   
curl_setopt($ch,CURLOPT_COOKIEJAR,$jar);   
curl_setopt($ch,CURLOPT_COOKIEFILE,$jar);   
curl_setopt($ch,CURLOPT_URL,$url);   
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,TRUE);   
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);   
curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8");   
//curl_setopt($ch,CURLOPT_VERBOSE,true);   
if($method=="POST"){
curl_setopt($ch,CURLOPT_POST,TRUE);   
}else{
curl_setopt($ch,CURLOPT_POST,FALSE);   
}
return $ch;   
}

function &sendAndResult(&$ch){
$str=curl_exec($ch);   
curl_close($ch);   
unset($ch);   
echo $str;  
$str; を返します。   
}
我原以模拟登陆後,就可任意登陆我的人主页或者查看好友,但当我
$URL="http://friend.renren.com/GetFriendList.do?curpage=0&id=382556764 ";
$fcontents=file_get_contents($URL);
echo"$fcontents";
再びログイン インターフェイスに戻ってしまいました。接続を維持する方法はありますか?
ありがとう!


ディスカッションに返信 (解決策)

単純な file_get_contents では Cookie は渡されません
ログインが必要なため、Cookie は常に渡される必要があります
getCurl を引き続き使用します

単純な file_get_contents では Cookie は渡されません
ログインが必要なので、常に Cookie を渡す必要があります
getCurl を使い続けます
ページにログインしている限り、再度 Cookie を送信する必要があるという意味ですか?
ブラウザと同じで一度送信すれば後は送信する必要がないと思いました。 。 。初心者の方もぜひ写真を撮ってください。 。

はい、ブラウザと同じように、毎回 Cookie を送信する必要があります

はい、ブラウザと同じように、毎回 Cookie を送信する必要があります
OK、ありがとう、怠けていたかったので、毎回送信するだけですとにかく関数に書き込まれます。あげます


はい、ブラウザと同じように、毎回 Cookie を送信する必要があります
OK、ありがとう、面倒なことをしたかったので、毎回送信するだけです。関数。あげます
モデレーターさん、レンレン用に書き終わりました。今度はWeibo用に作りたいのですが、どう変更すればいいですか?
必要なのはcurl_setopt($ch,CURLOPT_POSTFIELDS,)だけだと思います。 'email='.urlencode($ renren_username).'&password='.urlencode($renren_password).'&origURL=http%3A%2F%2Fwww.renren.com%2FHome&domain=renren.com&key_id=1&captcha_type=web_login&_rtk=90ae5f12') ;
内の 3 番目のパラメーター それは問題ありませんが、Sina Weibo では何を変更する必要がありますか?

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