0

SSLを使用したCurlログインは、問題が発生して問題が発生する前は正常に機能していました。

print_r(curl_getinfo($ ch))で次の情報を取得しました:「sslcertificate」を検証しないとエラー「20」がスローされるというドキュメントを読んだので、私の疑いは「ssl_verify_result」です。

[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)で作業していて、実際のWebサイトから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);

どんな助けでも???

4

1 に答える 1

0

問題が SSL 検証にある場合は、次の設定が役立ちます。

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

送信されるユーザー名とパスワードは、引き続き SSL 暗号化されます。
編集:ここにあるように投稿データを urlencode してください。

于 2013-01-21T11:55:28.350 に答える