最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP使用CURL實現(xiàn)對帶有驗證碼的網(wǎng)站進行模擬登錄的方法

 更新時間:2014年07月23日 10:52:32   投稿:shichen2014  
這篇文章主要介紹了PHP使用CURL實現(xiàn)對帶有驗證碼的網(wǎng)站進行模擬登錄的方法,可以幫助讀者加深對CURL操作的理解與應用,需要的朋友可以參考下

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

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

/**
 * 模擬登錄
 */

//初始化變量
$cookie_file = "tmp.cookie";
$login_url = "http://xxx.com/logon.php";
$verify_code_url = "http://xxx.com/verifyCode.php";

echo "正在獲取COOKIE...\n";
$curlj = curl_init();
$timeout = 5;
curl_setopt($curl, CURLOPT_URL, $login_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); //獲取COOKIE并存儲
$contents = curl_exec($curl);
curl_close($curl);

echo "COOKIE獲取完成,正在取驗證碼...\n";
//取出驗證碼
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $verify_code_url);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$img = curl_exec($curl);
curl_close($curl);

$fp = fopen("verifyCode.jpg","w");
fwrite($fp,$img);
fclose($fp);
echo "驗證碼取出完成,正在休眠,20秒內請把驗證碼填入code.txt并保存\n";
//停止運行20秒
sleep(20);

echo "休眠完成,開始取驗證碼...\n";
$code = file_get_contents("code.txt");
echo "驗證碼成功取出:$code\n";
echo "正在準備模擬登錄...\n";

$post = "username=maben&pwd=hahahaha&verifycode=$code";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
$result=curl_exec($curl);
curl_close($curl);

//這一塊根據(jù)自己抓包獲取到的網(wǎng)站上的數(shù)據(jù)來做判斷
if(substr_count($result,"登錄成功")){
 echo "登錄成功\n";
}else{
 echo "登錄失敗\n";
 exit;
}

//OK,開始做你想做的事吧。。。。。

相關文章

  • php下pdo的mysql事務處理用法實例

    php下pdo的mysql事務處理用法實例

    這篇文章主要介紹了php下pdo的mysql事務處理用法,以實例形式分析了基于pdo的事物提交與回滾操作的用法,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • Phar反序列化超詳細介紹

    Phar反序列化超詳細介紹

    這篇文章主要為大家介紹了PHP開發(fā)技巧之PHAR反序列化詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • php 頁面執(zhí)行時間計算代碼

    php 頁面執(zhí)行時間計算代碼

    我們在開發(fā)網(wǎng)頁的時候,往往會測試一下自己寫的網(wǎng)頁的執(zhí)行時間是多少,例如:有時網(wǎng)頁打開很慢,但是不知道是卡在哪了,這時我們就可以使用以下的方法來判斷頁面的執(zhí)行時間是多少,準確的找到問題所在點,精確到毫秒。
    2008-12-12
  • php時間戳轉換代碼詳解

    php時間戳轉換代碼詳解

    在本篇文章里小編給各位分享一篇關于php時間戳轉換的知識點內容,有需要的朋友們可以參考下。
    2019-08-08
  • wordpress之wp-settings.php

    wordpress之wp-settings.php

    wordpress之wp-settings.php...
    2007-08-08
  • thinkphp如何傳遞GET參數(shù)方法詳解

    thinkphp如何傳遞GET參數(shù)方法詳解

    這篇文章主要為大家介紹了thinkphp如何傳遞GET參數(shù)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • PHP進階學習之命名空間基本用法分析

    PHP進階學習之命名空間基本用法分析

    這篇文章主要介紹了PHP進階學習之命名空間基本用法,簡單分析了php命名空間的基本概念、功能并結合實例形式描述了命名空間的用法與相關操作注意事項,需要的朋友可以參考下
    2019-06-06
  • php過濾器使用詳解

    php過濾器使用詳解

    PHP 過濾器用于驗證和清理外部輸入。PHP 過濾器擴展具有檢查用戶輸入所需的許多功能,旨在使數(shù)據(jù)驗證更容易、更快
    2022-11-11
  • php+mysql開發(fā)中的經驗與常識小結

    php+mysql開發(fā)中的經驗與常識小結

    這篇文章主要介紹了php+mysql開發(fā)中的經驗與常識,簡單總結分析了php+mysql數(shù)據(jù)庫程序設計中的命名規(guī)范、數(shù)據(jù)庫表、字段、索引等相關設計與使用規(guī)范,需要的朋友可以參考下
    2019-03-03
  • 深入理解PHP中的global

    深入理解PHP中的global

    這篇文章主要介紹了深入理解PHP中的global,用簡明的語言描述global的實現(xiàn)原理和作用,并給出了代碼示例,需要的朋友可以參考下
    2014-08-08

最新評論

黄陵县| 茂名市| 丰台区| 宾川县| 阿拉善左旗| 牙克石市| 喜德县| 临漳县| 铅山县| 太保市| 乳山市| 和田市| 白朗县| 宝鸡市| 县级市| 定襄县| 广西| 旬阳县| 西畴县| 海晏县| 滨海县| 平谷区| 清远市| 托克托县| 元氏县| 赤壁市| 故城县| 灵武市| 博爱县| 沙洋县| 英吉沙县| 门头沟区| 临湘市| 漳州市| 达州市| 大安市| 封开县| 蓬莱市| 崇文区| 上饶县| 洛川县|