Автор Тема: проблема с использованием CGI::Cookie  (Прочитано 3863 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Intruder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с использованием CGI::Cookie
« : 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?
Вопрос простой. Что делать?
« Последнее редактирование: 15 Декабря 2004, 23:05:11 от Intruder »

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
проблема с использованием CGI::Cookie
« Ответ #1 : 15 Декабря 2004, 23:11:39 »
Цитировать
Intruder:
 Если пытаюсь вызвать скрипт через другие скрипты,

а как?
Цитировать
Intruder:
то модуль "не понимает", какие именно кукесы ему использовать

он их не получает.
соответственно $cookies{\'login\'} = undef
 в исканиях.

Оффлайн Intruder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с использованием CGI::Cookie
« Ответ #2 : 15 Декабря 2004, 23:31:42 »
Вызываю примерно так:
Через 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

Эм...А... А как это "заработать"? =)

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
проблема с использованием CGI::Cookie
« Ответ #3 : 16 Декабря 2004, 12:03:04 »
Цитировать
Intruder:
А может всё дело в вызове скриптов через SSI?

set-cookie - не работают если скрипт вставлен через SSI.
Куки выставляются вместе с хедером, а не с телом ответа.
В данном случае, хедер уже отдан и куки видимо пролетают.
The documentations is your friend

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
проблема с использованием CGI::Cookie
« Ответ #4 : 16 Декабря 2004, 17:42:28 »
NeoNox
Позволю себе не согласиться.
set-cookie - действительно не работает через SSI, но вопрос все-таки о их чтении, а не установке...

А чтение Cookies через SSI - проходит на ура.

А вот если в куках неправильно указан domain или path, то Cookie не только скриптом читаться не будут...

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
проблема с использованием CGI::Cookie
« Ответ #5 : 16 Декабря 2004, 18:00:49 »
Цитировать
Phoinix:
действительно не работает через SSI, но вопрос все-таки о их чтении, а не установке...

возможно, он не смог их поставить, и потом нечего было читать
 в исканиях.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
проблема с использованием CGI::Cookie
« Ответ #6 : 16 Декабря 2004, 18:03:03 »
Блин, не вчитался.
Intruder
замени
sub find_reg_login()
{  
  %cookies = fetch CGI::Cookie;
  my($c_login)= $cookies{\'login\'}->value if ($cookies{\'login\'});
}
The documentations is your friend

Оффлайн Intruder

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблема с использованием CGI::Cookie
« Ответ #7 : 16 Декабря 2004, 19:51:12 »
Ты прав! Защита работает. Теперь всё грузится, вот только правда кукесы не читаются. =(
До того читались очень даже(без SSI конечно). Попробую ещё побаловаться с установкой кукесов.
Но дело скорее всего не в записи кукесов. Про хейдеры, не знаю что это и как с этим работать. Буду искать инфу.
З.Ы. Попробую справится без SSI. Щас придумал как. Всё равно спасибо!
« Последнее редактирование: 16 Декабря 2004, 21:03:41 от Intruder »

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28