Home > php教程 > php手册 > body text

php curl模仿登录人人网发布动态实例

WBOY
Release: 2016-05-23 08:33:59
Original
1623 people have browsed it

说到php中模仿登录很多人第一时间会想到curl函数系列了,这个没错本例子也是使用curl模仿登录之后再进行动态发布,原理也简单我们只要抓取人人网的登录信息,然后再由curl post登录数据上去就可以了,具体代码如下.

$rconfig = pdo_fetch("SELECT * FROM ".tablename("eduTwo_renren")." WHERE weid = :weid",array(':weid'=>$_W['weid'])); 
$cookie_file = dirname(__FILE__)."/renren.cookie"; 
$login_url = 'http://passport.renren.com/PLogin.do'; 
$post_fields['email'] = $rconfig['rusername']; 
$post_fields['password'] = $rconfig['rpassword']; 
$post_fields['origURL'] = 'http%3A%2F%2Fhome.renren.com%2FHome.do'; 
$post_fields['domain'] = 'renren.com'; 
 
$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); 
$content = curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 
//var_dump($info);exit; 
//匹配用户的ID 
$send_url='http://www.renren.com/home'; 
$ch = curl_init($send_url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 
 
 
//$uid = "305115027"; 
//获取token和rtk 
$send_url=$info['redirect_url']; 
$ch = curl_init($send_url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
$tmp = curl_exec($ch); 
curl_close($ch); 
preg_match_all("/get_check:'(.*?)',get_check_x:'(.*?)',/is",$tmp,$arr); 
preg_match_all("/'ruid':'(.*?)',/is",$tmp,$utmp); 
//var_dump($utmp);exit; 
$token = $arr[1][0];//1121558104 
$rtk = $arr[2][0];//e9a9cb2 
$uid = $utmp[1][0]; 
//echo $token;exit; 
//发布信息 
$poststr['content'] = $_GPC['content'].$rconfig['tail']; 
$poststr['withInfo'] = '{"wpath":[]}'; 
$poststr['hostid:'] = $uid; 
$poststr['privacyParams'] = '{"sourceControl": 99}'; 
$poststr['requestToken'] = $token; 
$poststr['_rtk'] = $rtk; 
$poststr['channel'] = "renren"; 
$head = array( 
 'Referer:http://shell.renren.com/ajaxproxy.htm', 
 'X-Requested-With:XMLHttpRequest', 
); 
$ch = curl_init("http://shell.renren.com/{$uid}/status"); 
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_HTTPHEADER,$head); 
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, $poststr); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
$content = curl_exec($ch); 
curl_close($ch); 
//echo $content;exit; 
$data = json_decode($content,true); 
if($data["code"] == "0"){ 
 echo "发布成功!"; 
}else{ 
 echo "shit !!!"; 
}
Copy after login

前面的数据库大写自己写一个吧,非常的简单的一个记录库也是你要发布的信息.


本文链接:

收藏随意^^请保留教程地址.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!