Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > php curl и https


Автор: Predator199 12.2.2015, 18:54
У меня следующая проблема возникла.
Есть два сайта, один доступен через протокол http://. С него же или сказать на нем скрипт безпроблем авторизовывается.

Второй же сайт доступен через протокол https://. Вот на нем та и проблемы.

Подключил библиотеку "php_openssl.dll", все равно не работает.

Использую следующий код

Код

$ch = curl_init('https://www.sait.ru/login/');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("name"  =>"name","pass" =>"pass" ));                                   
curl_setopt($ch, CURLOPT_COOKIEJAR, __dir__ ."/my_cookies.txt");  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_exec($ch); 
curl_close($ch);


Помогите, в ssl сертификатов я полный ноль. Как мне узнать какой именно сертификат используется сайтом и какие команды необходимо дописать. В нете полно всего, еще в больший тупик захожу...

Автор: baldina 12.2.2015, 19:47
проще всего отключить проверку
Код

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);


Автор: Predator199 12.2.2015, 22:53
Перед данной строчкой 
Код

curl_setopt($ch, CURLOPT_POST, 1);


Прописывать команду 
Код

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);


Верно? То есть перед тем как выполним запрос?

Администратор может ли заподозрить, что та неладное с авторизацией? Если отключить ssl...


Автор: Sanchezzz 12.2.2015, 23:26
вы не отключаете ssl вы только говорите что я нехочу проверять сертификат и я на все согласеня 

Автор: Predator199 13.2.2015, 10:15
Все получилось, спс. smile 

Автор: Predator199 13.2.2015, 19:44
Скажите пожалуйста, реализация подобного на C++. Возможна и насколько сложнее? В плане кода...

Автор: baldina 13.2.2015, 19:47
конечно возможна, libcurl это библиотека С.
не сильно сложнее (на уровне синтаксических различий и встроенных типов)

Автор: Predator199 13.2.2015, 22:02
Можно пожалуйста статью по данному вопросу. Та, что чайнику бы была понятна...

Автор: baldina 13.2.2015, 22:18
http://ru.libcurl.wikia.com/wiki/Libcurlru_%D0%B2%D0%B8%D0%BA%D0%B8

Добавлено через 1 минуту и 45 секунд
но вообще это тема немного сложнее чем для чайников. 

Автор: Predator199 13.2.2015, 22:38
Я пока устанавливаю по для работы с c++.

На с++ так же нужно, сперва авторизоваться, далее записать куки которые даст сервер в txt. После чего можно подгружать txt и бегать скрипту по сайту?
Сертификат ssl, тоже можно будет игнорировать как и в php?

Автор: baldina 13.2.2015, 22:58
на c++, php, java, c#, perl, basic, pascal, ruby и остальных нужно все то же самое. можно даже без curl, в голом http.

Автор: Predator199 13.2.2015, 23:03
Завтра начну изучать, имеется ли библиотека оналогичной simple_html_dom.php? То есть можно ли без труда разобрать html верстку?

Такой вопрос, что значит в голом http? Мне необходимо авторизоваться, то есть авторизовать скрипт и получить html данные , недоступные неавторизованному пользователю.

В С++, куда сохраняются данные? В php эта база данных мусикл и интерфейс phpmyadmin. 

Автор: Predator199 14.2.2015, 17:45
Сайт доступен через протокол HTTPS
Значит читать мне нужно от сюда?
http://ru.libcurl.wikia.com/wiki/Https.c

Код


CURL *curl;
CURLcode res;
 
curl_global_init(CURL_GLOBAL_DEFAULT);
 
curl = curl_easy_init();
if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "https://site.com/login/"); - адрес на который будет отослан post запрос?
    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);      - Можно ли так же исключить проверку ssl?
    res = curl_easy_perform(curl);


    if(res != CURLE_OK)                                                       -
         fprintf(stderr, "curl_easy_perform() failed: %s\n",      -   Не понятно для чего весь этот код?           
              curl_easy_strerror(res));                                       -  Что тут за проверка?
 
    curl_easy_cleanup(curl);  - завершение сессии
  }

  curl_global_cleanup();  - завершение работы  curl



И так, отправила запрос. Где прописывать логин и пароль, как хранить полученные данные куков?

 

Автор: Aliance 16.2.2015, 09:19
А давайте вопросы по C++  и прочим ЯП мы будем задавать не в треде по PHP, а в их профильных.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)