| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Проблема с LWP + Cookie |
| Автор: sd1074 7.7.2008, 11:58 | ||||
| Здравствуйте! Проблема такая. Мне нужно получить страницу с URL http://mysite.ru, передав на неё Cookie вида "id=12345". Причём мне хотелось бы передать этот куки вручную. Что я делаю:
Сейчас я ещё опишу немного про настройки сервера, потом будет понятно зачем. В корне сервера (я имею доступ к серверу) лежит .htaccess, где прописано: RewriteEngine On RewriteRule index.htm http://mysite.ru/cgi-bin/index.pl То есть при обращении к http://mysite.ru выполняется скрипт /cgi-bin/index.pl. Этот редирект (ну или точнее подмена адреса) работает нормально в браузере, да и вообще нормально работает. Серверный скрипт /cgi-bin/index.pl имеет вид:
То есть просто выводит значение куки. Если, $url в приведённом выше скрипте HTTP-клиента сделать равным 'http://mysite.ru' (как там указано сейчас), то скрипт выводит: "Cookie: ", то есть куки нет (ну на самом деле я проверял, там в хэше окружения вообще нет ключа 'HTTP_COOKIE'), а если изменить $url на 'http://mysite.ru/cgi-bin/index.pl', то всё работает (то есть выводится значение куки: "Cookie: id=12345"). При этом, в браузере куки выводится всегда, как и должно быть. Как это так??!! Я что-то вообще голову сломал уже =\ Заранее спасибо. |
| Автор: tolkien 7.7.2008, 13:08 |
| Если куки нет значит она не отправляется. Возможно она отправляется с запросом на http://mysite.ru. Возвращается ответ с номером 300+ что нужен редирект. Выполняется второй запрос и с ним уже куки не отправляется. Проблема скорее всего ищите внутри LWP, а не в настройках сервера. Серваку побоку куки. Для него это просто заголовок. И если он есть, то попадает в окружение скрипта. |
| Автор: sd1074 7.7.2008, 14:12 |
| Спасибо. Проблема решена. Вы правы, выполянется редирект и второй раз куки не отправляется. Решение нашёл здесь на форуме: $ua->default_headers->push_header('Cookie' => 'id=12345') в этом случае кукис будет передаваться скаждым запросом. Работает. |