2012-12-19 2 views
1

다음 코드를 사용하여 웹 사이트에 로그인하려고했습니다. 팝업 메시지가 있습니다cURL을 사용하여 내 사이트의 HTTPS 사이트에 로그인하십시오.

"이 페이지가 암호화되었지만 입력 한 정보는 암호화되지 않은 연결을 통해 전송되며 제 3자가 쉽게 읽을 수 있습니다.이 정보를 계속 보내시겠습니까? "

"계속"버튼을 클릭해야 액세스 권한이 부여됩니다.

코드가 작동하지 않습니다. 메시지와 관련이 있거나 내가 옳지 않았던 것이 있다면 확실하지 않습니다.

$url = "https://anothersite.com/login.php"; 
$agent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/A.B (KHTML, like Gecko) Chrome/X.Y.Z.W Safari/A.B."; 
$username = "xxxx"; 
$password = "1234"; 
$postfields = "username=".$username."&password=".$password; 
$cookie_file_path = getcwd().'/cookie.txt'; 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); 
curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_SSLVERSION, 3); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch, CURLOPT_REFERER, $url); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); 
curl_setopt($ch, CURLOPT_POST, 1); 

echo curl_exec($ch); 

curl_close($ch); 

답변

1

인증 된 CA에서 발급 한 인증서를 사용하지 않는 것 같습니다.

아래에서 false로 설정해보십시오. 작동해야합니다.

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
+1

'curl_setopt ($ false로의 채널, CURLOPT_SSL_VERIFYPEER)'값 설정 CURLOPT_SSL_VERIFYPEER는 부울이어야한다 : http://php.net/manual/en/function.curl-setopt.php – cheesemacfly

+0

감사 @cheesemacfly –

+0

첫 번째 호출은 옳았고 (curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, 0); – cheesemacfly

관련 문제