Сессии и вход на сайт cURL - PullRequest
0 голосов
/ 30 ноября 2011

Мне нужно авторизоваться на какой-то странице cURL в php.У меня есть этот сценарий:

$cookie_file = 'cookies.txt';
$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://www.xxx.pl/index.php?act=ws&sub=login');
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, 'login=aaa&pass=bbb');
curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT    5.0)");
curl_setopt($c, CURLOPT_REFERER, 'http://www.xxx.pl/index.php');
//curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 0);
//curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/'.$cookie_file);
curl_setopt($c, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/'.$cookie_file);
curl_exec($c);
curl_close($c);

Когда я запускаю его, сценарий входит в систему (я вижу новую дату в вставке базы данных при входе в систему), но когда я открываю сайт http://www.xxx.pl/, я не захожу,Я думаю, что проблема в сессиях.Но я не знаю, как ее решить.

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

Запуск сеанса с cURL и сбор данных cookie не означает, что сеанс будет разделен между вашим приложением и браузером.

Если вы запускаете скрипт из того же домена, вам необходимо:

  • Анализ данных cookie, полученных с помощью cURL
  • , с помощью функции PHP setcookie (), чтобы вернуть те же данные cookie в ваш браузер.

После выполнения этих действий браузер отправит файлы cookie обратно на сервер.который инициировал сеанс.

0 голосов
/ 30 ноября 2011

Вы можете использовать класс Zend_Http и Zend_http_CookieJar (части Zend Framework). См. Здесь: http://framework.zend.com/manual/fr/zend.http.cookies.html

В большинстве случаев нет необходимости напрямую создавать экземпляр объекта Zend_Http_CookieJar.Если вы хотите прикрепить новый файл cookie к вашему объекту Zend_Http_Client, просто вызовите метод Zend_Http_Client-> setCookieJar (), и новый пустой файл cookie будет прикреплен к вашему клиенту.Позже вы можете получить этот файл cookie, используя Zend_Http_Client-> getCookieJar ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...