Больше не могу войти через sll, используя curl
Вход в Curl с SSL работал нормально, прежде чем он сломался и сводил меня с ума.
Получил следующую информацию с 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);
Любая помощь???
1 ответ
Если проблема связана с проверкой SSL, вам помогут следующие настройки
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
Имя пользователя и пароль будут передаваться в зашифрованном виде по SSL.
Изменить: Просто убедитесь, что вы urlencode данных поста, как показано здесь.