PHP Curl Логин Cookies - PullRequest
       8

PHP Curl Логин Cookies

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

Вот чего я пытаюсь достичь: Я не могу использовать реальные URL, поэтому я бы использовал сайты A.com и B.com

  1. На странице A.com я отображаю форму входа, затем использую CURL, чтобы передать значения в домен B, войти и получить имя файла cookie
  2. Затем я установил заголовки с правильной информацией и именем куки
  3. Перенаправить страницу на B.com/welcome.php, используя функцию определения местоположения PHP

Моя проблема в том, что я всегда получаю ошибку: ваша сессия истекла. Пожалуйста, войдите снова. Если я использую CURL для входа и получения cookie, а затем использую CURL для отображения страницы, на которой он работает.

Часть CURL работает нормально, следующий код вызывает ошибку истечения сеанса "

header ('Host: B.com\n');
header ('User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1\n');
header ('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\n');
header ('Accept-Language: en-gb,en;q=0.5\n');
header ('Accept-Encoding: gzip, deflate\n');
header ('Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\n');
header ('Referer: http://B.com/\n');
header ('Content-type: application/x-www-form-urlencoded\n');
header ('location: B.com/welcome.php');

Причина, по которой я использую эти заголовки, заключается в том, что именно это отправляется из Firefox, когда я вручную захожу на страницу.

Спасибо за вашу помощь

1 Ответ

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

Очевидно, ваш браузер не имеет того же хранилища cookie, которое использует curl, и поэтому, когда страница проверяет информацию о cookie из браузера, она не найдет то, что ожидает.Если вы хотите, чтобы этот логин работал в браузере, вам необходимо установить куки в браузере ДО того, как вы перейдете на страницу приветствия.

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