php驗證碼curl
❶ php curl模擬登陸兩次請求驗證碼的問題,登陸時請求一次驗證碼並獲取cook
取得驗證碼cookie 然後帶著cookie post登錄 再保存cookie
❷ php一個curl提交驗證碼錯誤的問題,除積分外100大洋轉賬
沒太看明白原理,也太費勁,不過測試了一下,發現你的問答題的答案是錯的。你的代碼測試一下就提示驗證碼錯誤,然後就打開了一個文章提交頁面,這個時候你看一下問答題的答案那個下拉列表,並不是
<option value="1">1</option>
而是
<option value="3126.18.17%%%%2">1</option>,所以如果結果為1,你的輸入框中需要錄入3126.18.17%%%%2
所以你提交的答案必然是錯的了,OK?
❸ 怎樣用php中的curl模擬登陸
/**
* 模擬登錄
*/
//初始化變數
$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);
//這一塊根據自己抓包獲取到的網站上的數據來做判斷
if(substr_count($result,"登錄成功")){
echo "登錄成功\n";
}else{
echo "登錄失敗\n";
exit;
}
❹ 我想用PHP的curl做一個帶驗證碼的模擬登陸,可是我不太清楚header中應包含什麼
模擬瀏覽器登陸應用開發,最關鍵的地方是突破登陸驗證。CURL技術不只支持http,還支持https。區別就在多了一層SSL加密傳輸。
如果是要登陸https網站,php記得要支持openssl。還是先拿一個例子來分析。
❺ php用curl模擬登錄帶驗證碼的教務系統一直出現驗證碼錯誤
一般是多次請求吧,第一次請求生成並獲取cookie,第二次再把cookie添加到首部,把相關信息一起提交過去。
❻ php 使用curl時怎麼增加一個auth的驗證
這個需要自己添加,可以time和自定義key做驗證碼
❼ 如何判斷php中curl模擬登陸是否成功
/**
* 模擬登錄
*/
//初始化變數
$cookie_file = "tmp.cookie";
$login_url = "";
$verify_code_url = "";
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);
//這一塊根據自己抓包獲取到的網站上的數據來做判斷
if(substr_count($result,"登錄成功")){
echo "登錄成功\n";
}else{
echo "登錄失敗\n";
exit;
}
❽ php curl 模擬登陸的問題驗證碼怎麼破
網路技術飛速發展,紅黑較量也是日新月異,我們要想取得長久的勝利,就不能得過且過,想繞過一切驗證碼,是不可能實現的。
建議:
用curl模擬登陸頁面獲取驗證碼圖片,手工錄入
當然了,如果後台是你自己的就不要驗證碼就OK了,但這是個 個例,不是泛指,希望能幫到你。
❾ php curl獲取正方教務系統驗證碼亂碼問題
估計是因為'http://jwxt.jit.e.cn/CheckCode.aspx返回的就是圖片。不是html文本
你要獲取圖片可以直接在自己網頁用img標簽,不需要curl
比如:<img src="http://jwxt.jit.e.cn/CheckCode.aspx"/>
❿ php 識別驗證碼
PHP識別驗證碼(適合大部分驗證碼)
<?php
$ch= curl_init();
$img='@D:\APMServ5.2.6\www\htdocs\ccb\ntef.png';//注意@,表示文件上傳
$data=array(
'type'=>'recognize',
'softID'=>'3',
'softKey'=>'',
'userName'=>'test',
'passWord'=>'123456',
'imagePath'=>$img,
'codeType'=>'1040',//驗證碼類型,見下面圖片
'timeout'=>'60',
'remark'=>'',
'log'=>'0',
'upload'=>'開始識別'
);
// $ch =
curl_init();
//
curl_setopt($ch, CURLOPT_URL, $url);
//
curl_setopt($ch, CURLOPT_POST, 1);
//
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
//
curl_exec($ch);
//
curl_close($ch);
//
這段代碼提交出去的Content-Type到底是multipart/form-data還是application/x-www-form-urlencoded呢?我抓包研究了一下,發現Content-Type的類型取決於$data的數據類型。
//
如果$data是字元串,則Content-Type是application/x-www-form-urlencoded。
//
如果$data是k=>v的數組,則Content-Type是multipart/form-data
$url='http://ff.ma365.com/ZMDemo_PHP/Demo.php';
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
$result=
curl_exec($ch);
echo$result;
curl_close($ch);