Forum Webscript.Ru
Программирование => Perl => Тема начата: Intruder от 15 Декабря 2004, 22:44:50
-
Приветсвую вас господа!
Если кто работал с этим модулем или кто считает, что его использование плохой вариант, прошу ответить.
Суть проблемы:
Пытаюсь считывать кукесы. Если вызываю свой скрипт через формы на странице(IE), то всё работает нормально. Если пытаюсь вызвать скрипт через другие скрипты, то нефига не работает. Выдаёт "Can\'t call method "value" on an undefined value at reg.pl line 36"(в примере кода вторая строчка). Главный скрипт вызывается на html-странице через SSI, потом ещё через две функции вызывается скрипт чтения кукесов.
%cookies = fetch CGI::Cookie;
my($c_login)= $cookies{\'login\'}->value;
my($c_password)=$cookies{\'password\'}->value;
Мои соображения сходятся на том, что модуль "не понимает", какие именно кукесы ему использовать...Хотя хз. А может всё дело в вызове скриптов через SSI?
Вопрос простой. Что делать?
-
Intruder:
Если пытаюсь вызвать скрипт через другие скрипты,
а как?
Intruder:
то модуль "не понимает", какие именно кукесы ему использовать
он их не получает.
соответственно $cookies{\'login\'} = undef
-
Вызываю примерно так:
Через SSI вызываю скрипт index.pl, который вызывает &show(); и т.д. ещё несколько раз. В конце концов выхожу на:
sub sh_in_login()
{
my(%MEMBERS)=&find_reg_login();
}
sub find_reg_login()
{
%cookies = fetch CGI::Cookie;
my($c_login)= $cookies{\'login\'}->value;#здесь не работает
}
Вначале файла определены
use CGI qw/:standard/;
use CGI::Cookie;
Green Kakadu:
он их не получает.
соответственно $cookies{\'login\'} = undef
Эм...А... А как это "заработать"? =)
-
Intruder:
А может всё дело в вызове скриптов через SSI?
set-cookie - не работают если скрипт вставлен через SSI.
Куки выставляются вместе с хедером, а не с телом ответа.
В данном случае, хедер уже отдан и куки видимо пролетают.
-
NeoNox
Позволю себе не согласиться.
set-cookie - действительно не работает через SSI, но вопрос все-таки о их чтении, а не установке...
А чтение Cookies через SSI - проходит на ура.
А вот если в куках неправильно указан domain или path, то Cookie не только скриптом читаться не будут...
-
Phoinix:
действительно не работает через SSI, но вопрос все-таки о их чтении, а не установке...
возможно, он не смог их поставить, и потом нечего было читать
-
Блин, не вчитался.
Intruder
замени
sub find_reg_login()
{
%cookies = fetch CGI::Cookie;
my($c_login)= $cookies{\'login\'}->value if ($cookies{\'login\'});
}
-
Ты прав! Защита работает. Теперь всё грузится, вот только правда кукесы не читаются. =(
До того читались очень даже(без SSI конечно). Попробую ещё побаловаться с установкой кукесов.
Но дело скорее всего не в записи кукесов. Про хейдеры, не знаю что это и как с этим работать. Буду искать инфу.
З.Ы. Попробую справится без SSI. Щас придумал как. Всё равно спасибо!