2012-12-20 23 views
0

使用SSL進行curl登錄在它壞掉之前正常工作並且使我瘋狂。無法使用curl登錄sll

用的print_r(curl_getinfo($ CH))

得到了以下信息: 我懷疑是「ssl_verify_result」因爲我在文檔已經閱讀,如果不驗證「SSL證書」,那麼它拋出錯誤「20」? ??

[url] => https://www.ooshirts.com/?module=artist&action=login 
[content_type] => text/html; charset=UTF-8 
[http_code] => 200 
[header_size] => 413 
[request_size] => 329 
[filetime] => -1 
**[ssl_verify_result] => 20** 
[redirect_count] => 0 
[total_time] => 1.404 
[namelookup_time] => 0 
[connect_time] => 0.265 
[pretransfer_time] => 1.107 
[size_upload] => 28 
[size_download] => 485 
[speed_download] => 345 
[speed_upload] => 19 
[download_content_length] => 485 
[upload_content_length] => -1 
[starttransfer_time] => 1.404 
[redirect_time] => 0 

我正在使用本地計算機(win7X64)並從實際網站下載SSL證書並將其存儲在本地的相同文件夾中。它幾天工作正常,但後來又開始返回相同的登錄頁面。下面是我的測試代碼:

$username="username"; 
$password="******"; 
$url="https://www.ooshirts.com/?module=artist&action=login"; 
$cookie=getcwd()."\cookie.txt"; 
$open = fopen($cookie,"w"); 
$postdata = "name=".$username."&password=".$password; 

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_CAINFO, getcwd() . "\www.ooshirts.com"); 
curl_setopt ($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie); 
curl_setopt ($ch, CURLOPT_REFERER, $url); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); 
$result = curl_exec ($ch); 
echo $result; 
fclose($open); 

任何幫助???

回答

0

如果問題是與SSL驗證,下面的設置將幫助您

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 

的用戶名和傳遞仍然會被SSL加密的密碼。
編輯:只要確保你urlencode發現數據爲here