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

首頁 > 開發 > PHP > 正文

PHP使用CURL模擬登錄的方法

2024-05-04 23:37:27
字體:
來源:轉載
供稿:網友

本文給大家介紹的是PHP使用CURL模擬登錄的方法,思路和其他模擬登陸的程序不同,有需要的小伙伴可以詳細看下。

網上的很多模擬登錄程序,大都是通過服務程序apache之類的運行,獲取到驗證碼之后顯示在網頁上,然后填上再POST出去,這樣雖然看起來很友 好,但是既然模擬登錄,登錄后所干的事情就不一定是短時間完成的,所以這就要受到php最大執行時間的限制,而且有些操作還有可能權限不足。

本文提供了一個程序實例,思路就是獲取到驗證碼之后把驗證碼存儲為一個圖片,然后程序休眠20秒,在20秒之后由用戶手動查看圖片,并把驗證碼填寫 到code.txt文件中,20秒休眠完成后,程序會讀code.txt的驗證碼,這樣再帶著驗證碼進行登錄操作。具體代碼如下:

 

 
  1. /** 
  2. * 模擬登錄 
  3. */ 
  4.  
  5. //初始化變量 
  6. $cookie_file = "tmp.cookie"
  7. $login_url = "http://xxx.com/logon.php"
  8. $verify_code_url = "http://xxx.com/verifyCode.php"
  9.  
  10. echo "正在獲取COOKIE.../n"
  11. $curlj = curl_init(); 
  12. $timeout = 5; 
  13. curl_setopt($curl, CURLOPT_URL, $login_url); 
  14. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
  15. curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout); 
  16. curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); //獲取COOKIE并存儲 
  17. $contents = curl_exec($curl); 
  18. curl_close($curl); 
  19.  
  20. echo "COOKIE獲取完成,正在取驗證碼.../n"
  21. //取出驗證碼 
  22. $curl = curl_init(); 
  23. curl_setopt($curl, CURLOPT_URL, $verify_code_url); 
  24. curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file); 
  25. curl_setopt($curl, CURLOPT_HEADER, 0); 
  26. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
  27. $img = curl_exec($curl); 
  28. curl_close($curl); 
  29.  
  30. $fp = fopen("verifyCode.jpg","w"); 
  31. fwrite($fp,$img); 
  32. fclose($fp); 
  33. echo "驗證碼取出完成,正在休眠,20秒內請把驗證碼填入code.txt并保存/n"
  34. //停止運行20秒 
  35. sleep(20); 
  36.  
  37. echo "休眠完成,開始取驗證碼.../n"
  38. $code = file_get_contents("code.txt"); 
  39. echo "驗證碼成功取出:$code/n"
  40. echo "正在準備模擬登錄.../n"
  41.  
  42. $post = "username=maben&pwd=hahahaha&verifycode=$code"
  43. $curl = curl_init(); 
  44. curl_setopt($curl, CURLOPT_URL, $url); 
  45. curl_setopt($curl, CURLOPT_HEADER, false); 
  46. curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); 
  47. curl_setopt($curl, CURLOPT_POSTFIELDS, $post); 
  48. curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file); 
  49. $result=curl_exec($curl); 
  50. curl_close($curl); 
  51.  
  52. //這一塊根據自己抓包獲取到的網站上的數據來做判斷 
  53. if(substr_count($result,"登錄成功")){ 
  54. echo "登錄成功/n"
  55. }else
  56. echo "登錄失敗/n"
  57. exit; 
  58.  
  59. //OK,開始做你想做的事吧。。。。。 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 手机| 博罗县| 南投市| 扬州市| 周口市| 全州县| 马关县| 蓬安县| 林芝县| 永定县| 婺源县| 同江市| 湖南省| 龙里县| 左权县| 宁明县| 桑日县| 嘉峪关市| 湘潭市| 温宿县| 天祝| 垣曲县| 邛崃市| 商水县| 礼泉县| 涟源市| 松阳县| 乡城县| 高唐县| 城市| 安图县| 孝感市| 当雄县| 张家口市| 淮阳县| 秦皇岛市| 察哈| 浮梁县| 疏附县| 辽中县| 嘉鱼县|