程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> curl 模擬登錄 實現教程

curl 模擬登錄 實現教程

編輯:PHP基礎知識
 

模擬登陸 126郵箱 ,人人網等 根據需要自行修改哈,代碼如下

//模擬登陸 驗證碼的網站,首先獲取驗證碼圖片的cookie

define('SCRIPT_ROOT',dirname(__FILE__).'/');
$cookieFile = SCRIPT_ROOT.'cookie.tmp';
/*模擬浏覽器*/
$user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)";
//這裡如果知道了cookie可直接發送到目標浏覽器
//$cookie = "lang=zh-cn; JSESSIONID=6AF7DA3F6A5FC3ECA39A7485C3FDBBAE"; 
$header = array (  
		 "Host:login.biuman.com",   
		"Referer: http://www.biuman.com",  
); 

 

//驗證碼圖片的url
function getCookie($url){
	global $cookieFile;    
	$curl = curl_init (); // 啟動一個CURL會話
	curl_setopt ( $curl, CURLOPT_URL, $url ); // 要訪問的地址
	curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 對認證證書來源的檢查
	curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 從證書中檢查SSL加密算法是否存在
	curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 發送一個常規的GET請求
	curl_setopt($curl,CURLOPT_COOKIEJAR, $cookieFile); // 把返回來的cookie信息保存在文件中
    $res = curl_exec($curl);
    curl_close($curl);

}


function login($url){
	global $cookieFile,$header,$agent;
	$data = array(
		'name'=>'biuman'	
	);

	$curl = curl_init (); // 啟動一個CURL會話
	curl_setopt ( $curl, CURLOPT_URL, $url ); // 要訪問的地址
	curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 對認證證書來源的檢查
	curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 從證書中檢查SSL加密算法是否存在
	curl_setopt ( $curl, CURLOPT_USERAGENT, $agent ); // 模擬用戶使用的浏覽器
	curl_setopt($curl, CURLOPT_HTTPHEADER, $header);  //設置頭信息的地方  
	@curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自動跳轉	
	//curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 發送一個常規的GET請求
	curl_setopt ( $curl, CURLOPT_POST, 1 ); // 發送一個常規的Post請求
	curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data ); // Post提交的數據包

	//curl_setopt ( $curl, CURLOPT_COOKIE, $cookie); // 直接發送cookie內容
	 curl_setopt($curl,CURLOPT_COOKIEFILE, $cookieFile); //發送Cookie文件
	curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 ); // 設置超時限制防止死循環
	curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 不顯示返回的Header區域內容
	curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 獲取的信息以文件流的形式返回
	$res = curl_exec ( $curl ); // 執行操作
	if (curl_errno ( $curl )) {
		return '失敗:Errno' . curl_error ( $curl );
	}
	curl_close ( $curl ); // 關閉CURL會話
	return $res;		

}

	//1.
	$auth_url = "http://www.biuman.com/auth";
	getCookie($auth_url);  //獲取驗證碼cookie

	//2.
	$url = 'http://www.biuman.com/home'; //登陸之後提交的url
	$res = login($url);
	print_r($res);

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved