麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > CMS > Discuz > 正文

discuz模擬登錄實(shí)現(xiàn)自動(dòng)頂帖php程序

2024-09-11 09:03:08
字體:
供稿:網(wǎng)友

在php 模仿登錄我們需要使用curl_init函數(shù),下面我來介紹利用 curl 模擬 post 登錄discuz論壇并且實(shí)現(xiàn)自動(dòng)頂帖功能.

其實(shí)模擬登錄就那點(diǎn)事,無法就是獲得相應(yīng)的參數(shù),然后模擬發(fā)送,把獲得的COOKIE 帶入下一步操作中去discuzx 系列為防止灌水,一直在用 formhash() 這個(gè)函數(shù).

1、下面來看下formhash 這個(gè)函數(shù),代碼如下:

  1. function formhash($specialadd = '') { 
  2.     global $_G
  3.     $hashadd = defined('IN_ADMINCP') ? 'Only For Discuz! Admin Control Panel' : '';//開源代碼Vevb.com 
  4.     return          substr(md5(substr($_G['timestamp'],0,-7).$_G['username'].$_G['uid'].$_G['authkey'].$hashadd.$specialadd), 8, 8);  

注:生成方式:1、截取的時(shí)間戳,2、用戶名,3、用戶ID,4、authkey,5、hashadd(定值),6、specialadd(定值)

因?yàn)榇嬖谟脩裘陀脩鬷d,所以在登錄前跟登錄后的產(chǎn)生的值是不同的,即:在登錄前跟登錄后你要2次來獲得fromhash;

那么authkey又是個(gè)什么東西呢 ?

2、關(guān)于authkey

代碼位置:/source/class/discuz/discuz_application.php,代碼如下:

  1. if(emptyempty($this->var['cookie']['saltkey'])) { 
  2.  $this->var['cookie']['saltkey'] = random(8);//這一步不要去管 
  3.  dsetcookie('saltkey'$this->var['cookie']['saltkey'], 86400 * 30, 1, 1); 
  4. $this->var['authkey'] = md5($this->var['config']['security']['authkey'].$this->var['cookie']['saltkey']);  

在這里可以看到:authkey是根據(jù)配置文件的authkey 和cookie 里面的saltkey 來生成的,其實(shí)在這里就可以看出來了,只要網(wǎng)站的$this->var['cookie']['saltkey'] 這個(gè)值始終保存在cookie里面就這樣就可以保證 formhash 那里生成的值永遠(yuǎn)是一樣的,永遠(yuǎn)是相對(duì)的.

3 cookie系列

discuz 的cookie的前綴是隨機(jī)生成的,代碼位置:/source/class/discuz/discuz_application.php,代碼如下:

  1. $this->var['config']['cookie']['cookiepre'] = $this->var['config']['cookie']['cookiepre'].substr(md5($this->;var['config']['cookie']['cookiepath'].'|'.$this->;var['config']['cookie']['cookiedomain']), 0, 4).'_';   

只要你登錄下網(wǎng)站看看cookie 的設(shè)置這里就可以了,他的前綴確實(shí)hi一直不變的,當(dāng)然改了配置文件那肯定會(huì)變,到底該怎么寫呢:說下我實(shí)現(xiàn)的思路.

1、登錄下訪問網(wǎng)站一下抓取網(wǎng)頁返回的 saltkey(cookie),formhash(值) 這兩個(gè)值(saltkey在下面一定要帶上,而且上下文要一致)

2、構(gòu)造登錄的內(nèi)容然后模擬post 提交 (一定要帶上第一步抓取到的cookie跟formhash 這一個(gè)值)

3、如果登錄成功,接著獲取一個(gè)頁面的 formhash 跟設(shè)置的cookie(這次獲得到的formhash 就是你可以一直使用的了)

4、構(gòu)造發(fā)帖還有頂帖的post 提交到頁面 (cookie 跟formhash 還是重點(diǎn) )

關(guān)于php 使用 crul 模擬 post 部分代碼,代碼如下:

  1. $ch = curl_init($url); //初始化 
  2.     curl_setopt($ch, CURLOPT_HEADER, 1); //不返回header部分 
  3.     curl_setopt($ch, CURLOPT_POST, 1);//是否 
  4.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接輸出 
  5.     curl_setopt($ch,CURLOPT_REFERER,$refer); 
  6.     curl_setopt($ch, CURLOPT_COOKIE,  $tocookies); //存儲(chǔ)cookies 
  7.     curl_setopt($ch, CURLOPT_POSTFIELDS, $datas); 

代碼就不共享了,有能力的朋友自己寫把,這東西容易引起混亂.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 中文在线日韩 | 黄色av.com| 国产91亚洲精品一区二区三区 | 永久av在线免费观看 | 欧美视频99| 一区国产在线观看 | 31freehdxxxx欧美 | 国产欧美日韩在线不卡第一页 | 欧美视频不卡 | 亚洲成人精品国产 | 亚洲成人免费视频在线 | 中文字幕在线视频网站 | 久久精品国产亚洲7777小说 | 1级黄色毛片 | 国产精品视频2021 | 羞羞的视频在线观看 | 激情国产视频 | 日韩欧美激情视频 | 成人福利在线看 | 水多视频在线观看 | 免费午夜视频在线观看 | 欧美激情 在线播放 | 在线观看国产一区二区 | 欧美四级在线观看 | 欧美韩国日本在线 | 久久精品亚洲一区二区三区观看模式 | 一级做a爱片性色毛片 | 视频一区二区三区视频 | 91久久国产露脸精品国产 | 日本在线播放一区 | 国产婷婷一区二区三区 | 国产流白浆高潮在线观看 | 欧美一级毛片欧美一级成人毛片 | 欧美在线观看视频一区二区 | 538任你躁在线精品视频网站 | 国产精品1区,2区,3区 | 精品一区二区三区免费毛片爱 | 日本一级黄色大片 | 欧美性受xxxxxx黑人xyx性爽 | 7m视频成人精品分类 | 懂色av懂色aⅴ精彩av |