20,359
社区成员
发帖
与我相关
我的任务
分享
<?php
// @author PHP-Fish
// @contact 51PHP.Net
// @describe curl登录discuz论坛
$ch = curl_init();
$url = 'http://www.discuz.net/logging.php?action=login&loginsubmit=yes';
$referer = 'http://www.discuz.net/logging.php?action=login'; //伪装页面来源
curl_setopt($ch, CURLOPT_URL, $referer); //打开地址,获取随机hash码
ob_start();
curl_exec($ch);
$content = ob_get_contents();
ob_end_clean();
curl_close($ch);
$ch = curl_init();
$preg_1 = '/<input type="hidden" name="formhash" value="(.*?)" \/>/';
preg_match($preg_1, $content, $arr_match);
$hash = $arr_match['1']; //隐藏传递的hash字符串;
$arr_post = array();
$arr_post['formhash'] = $hash;
$arr_post['loginfield'] = 'username';
$arr_post['username'] = '******'; //您的论坛用户名;
$arr_post['password'] = '******'; //论坛密码
$arr_post['questionid'] = 0;
$arr_post['answer'] = '';
//$arr_post['cookietime'] = 2592000;
$arr_post['loginsubmit'] = true;
curl_setopt($ch, CURLOPT_URL, $url); //设置需要提交的url地址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设置为字符串方式
curl_setopt($ch, CURLOPT_COOKIEJAR, '/cookie.txt'); //存储cookie(文件要设置为777)
curl_setopt($ch, CURLOPT_HEADER, false); //禁止头部信息
curl_setopt($ch, CURLOPT_NOBODY,true); //显示页面内容
curl_setopt($ch, CURLOPT_POST, true); //POST方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $arr_post); //POST数据
curl_setopt($ch, CURLOPT_REFERFER, $referer); //伪装REFERER
curl_exec($ch);
curl_close($ch);
$ch = curl_init();
$md = 'http://www.discuz.net/pm.php';
curl_setopt($ch, CURLOPT_URL, $md); //需要显示的页面
curl_setopt($ch, CURLOPT_COOKIEFILE, '/cookie.txt'); //传递COOKIE
curl_exec($ch);
curl_close($ch);
<?php
//初始化
$tread = array(
'root' => 'http://www.ly5s.com/bbs/index.php',
'login'=> 'logging.php?action=login',
'username'=>'烈焰灬林',
'password'=>'273319572',
'link'=>'http://www.ly5s.com/bbs/post.php?action=newthread&fid=13&extra=page%3D1', //这个地址可以在你要发帖的板块点击发帖,则地址栏的地址就是
'typeid'=>0, //有的板块需要typeid
'subject'=>'发帖标题',
'content'=>'发帖内容',
);
$tread['login'] = $tread['root'] . $tread['login'];
//进行登陆
$cookie_jar = tempnam('./tmp','cookie');//获取登陆后的cookie
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $tread['login']); //打开地址,获取随机hash码
ob_start();
curl_exec($ch);
$content = ob_get_contents();
ob_end_clean();
curl_close($ch);
$ch = curl_init();
$preg_1 = '/<input type="hidden" name="formhash" value="(.*?)" \/>/';
preg_match($preg_1, $content, $arr_match);
$hash = $arr_match['1']; //隐藏传递的hash字符串;
$request = "username={$tread[username]}&password={$tread[password]}&formhash={$hash}&loginsubmit=提交";
curl_setopt($ch, CURLOPT_URL, $tread['login']); //设置需要提交的url地址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设置为字符串方式
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); //存储cookie(文件要设置为777)
curl_setopt($ch, CURLOPT_HEADER, false); //禁止头部信息
curl_setopt($ch, CURLOPT_NOBODY,true); //显示页面内容
curl_setopt($ch, CURLOPT_POST, true); //POST方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $request); //POST数据
//curl_setopt($ch, CURLOPT_REFERFER, $referer); //伪装REFERER
curl_exec($ch);
curl_close($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $tread['link']); //打开地址,获取随机hash码
ob_start();
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar); //存储cookie(文件要设置为777)
curl_exec($ch);
$content = ob_get_contents();
ob_end_clean();
$preg_1 = '/<input type="hidden" name="formhash" id="formhash" value="(.*?)" \/>/';
//$preg_1 = '/<input type="hidden" name="formhash" value="(.*?)" \/>/';
preg_match($preg_1, $content, $arr_match);
$hash = $arr_match['1']; //隐藏传递的hash字符串;
$referer = $tread['link'];
$tread['link'] .= "&formhash={$hash}";
$request = "subject={$tread['subject']}&message={$tread['content']}&typeid={$tread[typeid]}&topicsubmit=yes&replysubmit=yes";
curl_setopt($ch, CURLOPT_URL, $tread['link']); //设置需要提交的url地址
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar); //存储cookie(文件要设置为777)
curl_setopt($ch, CURLOPT_HEADER, false); //禁止头部信息
curl_setopt($ch, CURLOPT_NOBODY,true); //显示页面内容
curl_setopt($ch, CURLOPT_POST, true); //POST方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $request); //POST数据
curl_setopt($ch, CURLOPT_REFERER, $referer); //伪装REFERER
curl_exec($ch);
curl_close($ch);
}
?>