Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - DSA

Страницы: [1]
1
Perl / Дата в Perl
« : 22 Июля 2005, 23:14:29 »
Для работы с датой есть модуль на CPAN. http://search.cpan.org/src/DSAMZA/EasyDate-102/EasyDate.pm

2
В очередной раз спасибо Вам за великолепный ответ, Зеленый Какаду :-)
Не подскажите где на форуме кнопочка добавления рейтинга?:)
Я ее почему-то не наблюдаю, хотя так хочется хоть и такой мелочью, но все же хоть как-то вас отблагодарить :-)

Насчет метода redirect() - мне кажеться весьма неудобная функция, т.к. невозможно использовать ее и в то же время послать пользователю кукис, поэтому я решил эту проблему таким способом:

print header(-cookie=>$cookie,-Refresh => "1; URL = test.pl");

Что практически индентично, но зато более функционально. :)

3
Здравствуйте многоуважаемый All!

Не подскажите ли как можно реализовать сабж. То есть, например, у меня такая ситуация:
При выполнении какого-то условия мне нужно отправить пользователя к другому скрипту.
Я пробовал пользоваться методом CGI->redirect("test.pl",1) (тоесть перенаправление на скрипт test.pl через 1 секунду), но он ведет себя мягко говоря по странному, иногда запуская нужный скрипт,а иногда выдавая такой результат:

Status: 302 Moved Window-Target: 1 location: test.pl

Подскажите, пожалуйста, как это можно реализовать.

4
Perl / Конкретная задача. Сессии на Perl.
« : 15 Июля 2005, 14:45:59 »
Вау! Пасибки за ценнейшую информацию :) Пойду прямо сейчас обновлять свою 3-95 на 4 версию CGI::Session :)

5
Perl / Конкретная задача. Сессии на Perl.
« : 14 Июля 2005, 23:32:18 »
Большое спасибо за ответ, Зеленый Какаду! :-)
Мне очень понравился ваш развернутый, подробный ответ, но я почему-то не нашел в перловой документации ничего про метод load, да и при попытке использовать его в скрипте перл ругается:

Can\'t locate auto/CGI/Session/load.al in @INC (@INC contains: z:/usr/lib z:/usr/
site/lib .) at xxx.pl line 7

Не могли бы ли вы прислать его мне на мыло mailbest@ru.ru либо скинуть прямо сюда в виде открытого кода? (я думаю он будет не большой по содержанию), я был бы очень признателен.

Кстати, вы писали, что вас лично модуль CGI::Session не устраивает, т.к. "Вместо простых SQL запросов для проверки времени истечения жизни сессии, он выбирает конкретную запись ,восстанавливает сериализованные данные и потом смотрит." - а нельзя ли написать собственную функцию отчистки базы от "мертвых" сессий? Тоесть срок действия которых давно истек.

6
Perl / Конкретная задача. Сессии на Perl.
« : 14 Июля 2005, 11:54:46 »
Я вот впринципе подумал и мне на ум приходит только один вариант решения данной проблемы. Вот примерный алгоритм:
 1. Юзер вводит логин и пароль, нажимает ок.
 2. Скрипт проверяет пользователя по базе, если все ок, пользователь существует и пароль верен, то отправляем на главную страницу некого интерфейса.
 3. На главной странице создается сессия выше указанным способом(если кукиса нет,то создаем, если есть,пользуемся текущей).
 4. Далее, допустим,при перемещении в какой-либо секретный раздел(тоесть раздел защищенного интерфейса), то мы делаем следующее:
        4.1  Проверяем пользователя кукисы. Записываем кукис с именем CGISESSID в некую переменную (если он есть). Эта часть кода у меня так выглядит:

my $sid = $cgi->cookie("CGISESSID") || undef;

if ($sid) {
 my $session = new CGI::Session(undef, $cgi, {Directory=>\'Z:/tmp\'});
 print "Okey!
";
 print "Session->ID = ", $session->id(), "
;
} else {
 print "nefiga :(
";
}

Вот и все. Но мне почему-то кажеться что существует какой-то другой, более элегантный способ проверки.

7
Perl / Конкретная задача. Сессии на Perl.
« : 14 Июля 2005, 09:01:14 »
Простите пожалуйста что вмешиваюсь в вашу беседу,но меня тоже очень интересует принцип использования сессий (в моем случае для авторизации/аутентификации на сайте) с помощью модуля CGI::Session. А проблема моя заклчается в том, что я, даже после прочтения здаровенного мануала(туториала), так и не понял, каким образом можно/нужно проверять является ли пользователь "хозяином" сессии? (т.е. тем,кто ее изначально создал в том виде и с тем ключом, с которым она есть).

А я проделываю следующее:

my $cgi = new CGI;
my $cookie;
my $sid = $cgi->cookie("CGISESSID") || undef;
my $session = new CGI::Session(undef, $sid, {Directory=>\'Z:/tmp\'});

unless ($sid) {
 $cookie = $cgi->cookie(CGISESSID => $session->id);
 print $cgi->header(-cookie=>$cookie);
}

Это в основном вырезки из туториала. Но вот мне не совсем понятно каким образом происходит АУТЕНТИФИКАЦИЯ. Тоесть определения честности пользователя. И что происходит, когда в качестве второго параметра в конструктор CGI::Session передается значение, не равное undef? Тоесть если undef, насколько я понял, создается новая сессия, а если нет? Есть ли тогда вообще смысл в этой часте кода при $sid не undef? (... new CGI::Session(undef, $sid, {Directory=>\'Z:/tmp\'});

Заранее спасибо за возможные ответы или критику или даже игнор :)

Страницы: [1]