国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php通過curl模擬登陸DZ論壇

2024-05-04 23:35:02
字體:
供稿:網(wǎng)友

本文章來給各位同學介紹一下關(guān)于Php CURL模擬登陸論壇并采集數(shù)據(jù)實例,如果你對利用curl模擬登錄功能有興趣可進入?yún)⒖肌?/p>

libcurl同時也支持HTTPS認證、HTTP POST、HTTP PUT、 FTP 上傳(這個也能通過PHP的FTP擴展完成)、HTTP 基于表單的上傳、代理、cookies和用戶名+密碼的認證。

 

 
  1. <?php  
  2. $discuz_url = 'http://m.survivalescaperooms.com/';//論壇地址  
  3. $login_url = $discuz_url .'login.php?action=login';//登錄頁地址  
  4.  
  5. $post_fields = array();  
  6. //以下兩項不需要修改  
  7. $post_fields['loginfield'] = 'username';  
  8. $post_fields['loginsubmit'] = 'true';  
  9. //用戶名和密碼,必須填寫  
  10. $post_fields['username'] = 'tianxin';  
  11. $post_fields['password'] = '111111';  
  12. //安全提問  
  13. $post_fields['questionid'] = 0;  
  14. $post_fields['answer'] = '';  
  15. //@todo驗證碼  
  16. $post_fields['seccodeverify'] = '';  
  17. //獲取表單FORMHASH  
  18. $ch = curl_init($login_url);  
  19. curl_setopt($ch, CURLOPT_HEADER, 0);  
  20. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  21. $contents = curl_exec($ch);  
  22. curl_close($ch);  
  23. preg_match('/<input/s*type="hidden"/s*name="formhash"/s*value="(.*?)"/s*//>/i'$contents$matches);  
  24. if(!emptyempty($matches)) {  
  25. $formhash = $matches[1];  
  26. else {  
  27. die('Not found the forumhash.');  
  28. }  
  29.  
  30. //POST數(shù)據(jù),獲取COOKIE,cookie文件放在網(wǎng)站的temp目錄下  
  31. $cookie_file = tempnam('./temp','cookie');  
  32. $ch = curl_init($login_url);  
  33. curl_setopt($ch, CURLOPT_HEADER, 0);  
  34. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  35. curl_setopt($ch, CURLOPT_POST, 1);  
  36. curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);  
  37. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);  
  38. curl_exec($ch);  
  39. curl_close($ch);  
  40. //取到了關(guān)鍵的cookie文件就可以帶著cookie文件去模擬發(fā)帖,fid為論壇的欄目ID  
  41. $send_url = $discuz_url."post.php?action=newthread&fid=2";  
  42.  
  43. $ch = curl_init($send_url);  
  44. curl_setopt($ch, CURLOPT_HEADER, 0);  
  45. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  46. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);  
  47. $contents = curl_exec($ch);  
  48. curl_close($ch);  
  49. //這里的hash碼和登陸窗口的hash碼的正則不太一樣,這里的hidden多了一個id屬性  
  50. preg_match('/<input/s*type="hidden"/s*name="formhash"/s*id="formhash"/s*value="(.*?)"/s*//>/i'$contents$matches);  
  51. if(!emptyempty($matches)) {  
  52. $formhash = $matches[1];  
  53. else {  
  54. die('Not found the forumhash.');  
  55. }  
  56.  
  57. $post_data = array();  
  58. //帖子標題  
  59. $post_data['subject'] = 'test2';  
  60. //帖子內(nèi)容  
  61. $post_data['message'] = 'test2';  
  62. $post_data['topicsubmit'] = "yes";  
  63. $post_data['extra'] = '';  
  64. //帖子標簽  
  65. $post_data['tags'] = 'test';  
  66. //帖子的hash碼,這個非常關(guān)鍵!假如缺少這個hash碼,discuz會警告你來路的頁面不正確  
  67. $post_data['formhash']=$formhash;  
  68.  
  69. $ch = curl_init($send_url);  
  70. curl_setopt($ch, CURLOPT_REFERER, $send_url); //偽裝REFERER  
  71. curl_setopt($ch, CURLOPT_HEADER, 0);  
  72. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);  
  73. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);  
  74. curl_setopt($ch, CURLOPT_POST, 1);  
  75. curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);  
  76. $contents = curl_exec($ch);  
  77. curl_close($ch);  
  78. //清理cookie文件  
  79. unlink($cookie_file);  
  80. ?> 

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 大荔县| 永昌县| 乐昌市| 钟山县| 十堰市| 焉耆| 罗甸县| 北辰区| 六枝特区| 新建县| 马龙县| 乌鲁木齐县| 南溪县| 奎屯市| 永泰县| 蒙城县| 诸城市| 象山县| 龙陵县| 内黄县| 牡丹江市| 鄄城县| 鸡泽县| 衡东县| 清丰县| 东丽区| 普安县| 襄垣县| 漳浦县| 安陆市| 遂川县| 慈溪市| 建平县| 柳林县| 富锦市| 漯河市| 克拉玛依市| 互助| 海伦市| 五莲县| 台北市|