Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы с CGI::header(), глюки при использовании кук 
:(
    Опции темы
Forza
Дата 12.10.2004, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 12.9.2004

Репутация: нет
Всего: 2



Второй день продолжаю выкладывать скрипт хостеру. smile.gif

Возникла следующая проблема. Для вывода заголовков использую функцию CGI::header(), которая при вызове без параметров передаёт строку Content-Type: text/html; charset=ISO-8859-1\n\n, а если ей передать, переменную $cookie, созданную следующим образом:
Код
$cookie = cookie (-name => "dvd_shop",
     -value => $sess_ref->session_id(),
            -path => url ( -absolute => 1));
, то она выдаст:
Set-Cookie: dvd_shop=c355ba68120c416151b7934f8f6cc265; path=/MY19.PL
Date: Tue, 12 Oct 2004 07:02:27 GMT
Content-Type: text/html; charset=ISO-8859-1\n\n

Это прекрасно работало на локалхосте, но у хостера при выводе заголовков с кукой броузер предлагает сохранить файл script.pl (т.е. не сам скрипт, а сгенерированную хтмл-страничку), т.е. броузер почему-то не видит заголовок "Content-Type". Если у хостера вызывать CGI::header() без параметров (т.е. без кук), сайт загружается идеально.
В чём могут быть грабли?

И второй вопрос. Вся работа с сайтом сосредоточена в одном Perl-скрипте, который находится в www.site-name.ru/cgi-bin/script.pl. Не хочу изобретать велосипед, поэтому спрошу у вас, как принято делать, чтобы по запросу на www.site-name.ru загружался www.site-name.ru/cgi-bin/script.pl (пропись cgi-bin/script.pl в список индексных файлов не помогла smile.gif ). Сделать index.shtml и инклудить туда скрипт через SSI? Сделать JavaScript-редирект?

PM MAIL   Вверх
Forza
Дата 12.10.2004, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 12.9.2004

Репутация: нет
Всего: 2



Наверное, опять дело в концах строки, да? Но с другой стороны я ведь использовал стандартную перловскую функцию. stena.gif

А есть ли какая-нибудь прога для тестов, которой передаёшь УРЛ, и она скачивает в текстовом виде всё, что броузер отдал, включая заголовки Set-Cookie, Content-Type и проч.? Могу, конечно, и сам написать, но если она уже есть... smile.gif

Это сообщение отредактировал(а) Forza - 12.10.2004, 10:47
PM MAIL   Вверх
Forza
Дата 12.10.2004, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 12.9.2004

Репутация: нет
Всего: 2



Как же интересно самому с собой разговаривать. wink.gif
Итак я потелнетил свой скрипт у хостера. Хостер выдаёт следующие HTTP-заголовки, если мой скрипт пытается прописать куку (как он это делает и как это работало на локалхосте - см.выше):
HTTP/1.1 200 OK
Date: Tue, 12 Oct 2004 08:20:09 GMT
Server: Apache/1.3.27 (Unix) FrontPage/5.0.2.2623 PHP/4.3.2 mod_gzip/1.3.19.1a mod_accounting/1.0 mod_fastcgi/2.4.0 mod_ssl/2.8.14 OpenSSL/0.9.7b rus/PL30.17
Connection: close
Transfer-Encoding: chunked
Content-Type: 0

6fb

И почему так?

И что это за 6fb в конце?
PM MAIL   Вверх
Forza
Дата 13.10.2004, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 12.9.2004

Репутация: нет
Всего: 2



В ходе экспериментов было выяснено, что такие глюки наблюдаются и с рядом других функций модуля CGI: url(), hidden(). В ходе дальнейших экспериментов было найдено, что глюки появляются при использовании директивы use integer;. Я в своё время про неё прочитал где-то на форуме, что мол, если нет операций с плавающей точкой, лучше перлу об этом заранее сказать. Ну я сказал, и на локалхосте всё было ок. У хостера пришлось убрать эту директиву. Так что вопрос решён.

А вот этот вопрос я до сих пор не решил:
=====
И второй вопрос. Вся работа с сайтом сосредоточена в одном Perl-скрипте, который находится в www.site-name.ru/cgi-bin/script.pl. Не хочу изобретать велосипед, поэтому спрошу у вас, как принято делать, чтобы по запросу на www.site-name.ru загружался www.site-name.ru/cgi-bin/script.pl (пропись cgi-bin/script.pl в список индексных файлов не помогла ). Сделать index.shtml и инклудить туда скрипт через SSI? Сделать JavaScript-редирект?
=====
Поищу-ка более соответствующий форум для этого дела.
PM MAIL   Вверх
Гость_kto-to
Дата 14.10.2004, 01:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Forza @ 12.10.2004, 10:46)
А есть ли какая-нибудь прога для тестов, которой передаёшь УРЛ, и она скачивает в текстовом виде всё, что броузер отдал, включая заголовки Set-Cookie, Content-Type и проч.? Могу, конечно, и сам написать, но если она уже есть... smile.gif

Поищи в форуме, прямо недалеко про анонимайзер, убери оттуда обрезание
картинок и всё. На авторские не претендую smile.gif.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.