Страница входа https с curl - PullRequest
1 голос
/ 08 марта 2011

Я не могу заставить php curl работать.Мне нужно войти на страницу, а затем получить исходный код страницы сразу после входа.

<?php

//user login information
$username = "";
$password = "";
$submit = "Login";
//server link and variables
$url ="https://orapp2.hunter.cuny.edu/sims/cls.MySchedule.login";
$nameField ="p_login_name";
$passField ="p_passwd";
$subField ="Login";

$cookie_file = "/tmp/cookie.txt";

$page = curl_init($url);

curl_setopt($page , CURLOPT_POST, 1);
$postData = $nameField."=".$username."&".$passField."=".$password."&".$subField."=".$submit;
curl_setopt($page, CURLOPT_POSTFIELDS, $postData);
curl_setopt($page, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($page, CURLOPT_COOKIEJAR, $cookie_file);

$out = curl_exec($page);
echo $out;
curl_close($page);    

?>

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Взгляните сюда:

http://www.codercaste.com/2009/12/15/use-curl-with-php-to-handle-http-requests-and-create-useful-scripts/

Используйте это для автоматического принятия сертификата для https:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
0 голосов
/ 14 сентября 2012

Метод, указанный Spyros, должен работать, и это самый простой трюк.Но не самый безопасный, так как он связан с проблемами безопасности (не рекомендуется проводить одноранговую проверку!).

Альтернативой является загрузка сертификата страницы, которую вы пытаетесь посетить, и сохранение его в папке вашего проекта.,Затем используйте этот код, чтобы передать информацию о сертификате в cURL:

curl_setopt($ch, CURLOPT_CAINFO, getcwd().'/certificates/BuiltinObjectToken-EquifaxSecureCA.crt');

Вы можете легко загрузить сертификат из Firefox, перейдя к значку блокировки весла в строке URL.

...