Forum Webscript.Ru

Программирование => Perl => Тема начата: GrAfF от 13 Августа 2003, 03:23:49

Название: SSI + Perl ne cookie
Отправлено: GrAfF от 13 Августа 2003, 03:23:49
Hi!
Предположим, есть у меня index.html. Нужно через SSI вызвать скрипт и передать ему пару параметров+cookie.



Не работает. Долго тестил, кавычки дописывал, скобки. У себя запускал под Win, потом у хостера под Unix. Серваки SSI ловят, обрабатывают, но оба пишут что-то вроде (none) и undefined. Хотя куки я ставил другим скриптом, они должны быть. Потом написал проще:



То же самое. Печенья нет.
Никакие файрволлы и настройки браузера не при чем, спецскриптом куки ставятся и читаются влёгкую.
Где могут быть грабли?
Название: SSI + Perl ne cookie
Отправлено: Wyclef от 13 Августа 2003, 09:39:45
Не понял... :confused: Зачем куку еще и передавать, если куки ставятся и читаются влёгкую скриптом.

Распечатай скриптом переменные ENV, если там есть HTTP_COOKIE, то и должно работать, к тому же у нее формат типа cookie=name; cookie2=name2; и т.д.
Название: SSI + Perl ne cookie
Отправлено: GrAfF от 13 Августа 2003, 14:05:27
Hi!
Ничего не понимаю. ;)
Есть index.html (SSI включен на *.htm) с exec cgi="cook.cgi". Cook.cgi - универсальный скрит, который показывает, пишет и удаляет cookie. Для отладки.
Там же, в html, есть echo var="HTTP_COOKIE", которая всегда выдаёт undef.

Так вот, через cgi-bin/cook.cgi я понаставил тучу cookie, без указания экспайра и домена. Тот же скрипт через exec cgi не видит никаких cookie! Хотя один cookie удалось поставить, его exec cgi видит. Но теперь я не могу его удалить, установив снова и указав прошедший expires.

В общем, хотел скрипт голосования написать, который бы через cookie определял бы, голосовал ли юзер.
Название: SSI + Perl ne cookie
Отправлено: NeoNox от 13 Августа 2003, 14:44:48
Куки можно и в HTML выставить....
Код покажи на всякий случай.
Название: SSI + Perl ne cookie
Отправлено: GrAfF от 13 Августа 2003, 21:39:22
Да мне не только ставить нужно, ещё и читать правильно... :(
Да при чем тут код, если cookie не то что не передаётся, оно даже не показывается через SSI.



=====





=====




(Проверил у хостера, поэтому эту мессагу подредактировал.)

Скриптом cookie берётся из $ENV{\'HTTP_COOKIE\'}.
Да, тут cookie ставится в HTML. Но echo var эту куки в HTML не показывает. А скрит через SSI видит, запущенный в чистом виде тоже видит, не может никак удалить (ставя expires на 2000 год). Может быть потому что ставится через /index.html в корне, а скрипт в /cgi-bin/ сидит? Но он же видит куки, почему не может исправить expires?
Забавно, но cookie почему-то скриптом читается, зато query нет.
Не понятно, почему cookie не трётся.
Название: SSI + Perl ne cookie
Отправлено: Wyclef от 14 Августа 2003, 07:51:29
Цитировать
GrAfF:
Есть index.html (SSI включен на *.htm)

Очепятка?
Название: SSI + Perl ne cookie
Отправлено: GrAfF от 14 Августа 2003, 14:07:34
Очепятка. SSI включен в *.htm и *.html. Это и хотел сказать.
А бага с неубиваемым cookie работает даже в браузере Xiino под PalmOS. :)
Название: SSI + Perl ne cookie
Отправлено: Wyclef от 14 Августа 2003, 14:17:05
Цитировать
А бага с неубиваемым cookie работает даже в браузере Xiino под PalmOS.

Во до чего куки человека довели :)

Дык, если у тебя даже QUERY_STRING не выводится, может с настройкой сервера проблемы... Надавно здесь же человек с Apachе-м бился - решилось переустановкой :)
Название: SSI + Perl ne cookie
Отправлено: GrAfF от 15 Августа 2003, 03:04:46
Всё, разобрался!
Почему-то имеет значение, из какой папки ставятся куки. Корень видит свои куки, папка cgi-bin свои, но ещё и из корня. В общем, муть. ;)
Include virtual, кажется, и без параметров ("cgi-bin/devcook.cgi") передаёт свои куки. С параметрами же (cgi-bin/devcook.cgi?${QUERY_STRING}&${HTTP_COOKIE}) уходит скрипту ещё и query.
А echo var="HTTP_COOKIE" не понимает мой SHTTPS, у хостера же всё в порядке.