Xpoint
   [напомнить пароль]

объект CGI::Session и области видимости

Метки: [без меток]
2006-05-07 17:00:22 [обр] Всеволод Фролов[досье]
Некоторое время пользовался модулем CGI::Session с хранением сессий в файле. Недавно появилась необходимость хранить сессии в базе.
Столкнулся с такой проблемой - запись в базе заводится только в том случае, если экземпляр объекта создан как локальная переменная:
my $session = CGI::Session->new("driver:MySQL", undef, {Handle=>$dbh});
(или local $session =...)
Вариант с глобальной переменной $session не работает.
При хранении сессий в файле модуль работает без проблем.
Подскажите, пожалуйста, где может быть собака зарыта?
(ОС - FreeBSD, версия модуля 3.95)
спустя 2 часа 13 минут [обр] Сергей Чернышев(0/589)[досье]

Подозреваю, что данные в базу заносятся когда переменная ликвидируется либо когда вы принудительно говорите их туда записать.

Если вы их принудительно не записывали а глобальная переменная живет дольше чем вы ожидаете, то в этом может быть и дело.

Странно что работает с файлами, но это скорее всего различия в реализации.

Короче, попробуйте писать в базу принудительно - может поможет.

Powered by POEM™ Engine Copyright © 2002-2005