ホームページ >バックエンド開発 >PHPチュートリアル >Renren.com で友人が遭遇したログイン問題のシミュレーション
我用网上别人的模拟登陆代码
$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 では何を変更する必要がありますか?