Thread sessionbasierter login mit perl (3 answers)
Opened by bjt1988 at 2007-08-14 21:10

pfuschi
 2007-08-15 01:36
#98167 #98167
User since
2004-03-31
198 Artikel
BenutzerIn
[default_avatar]
Hi,
wenn ich die Manpage richtig verstanden habe checkt is_empty() ob etwas in der Session gespeichert ist.
Da du in deinem Programm mit der Session eigentlich garnichts anfängst ist diese vermutlich immer empty.
Änder das mal so ab:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
$CGI::Session::MySQL::TABLE_NAME = 'sessions';

my $session = CGI::Session->load() or die CGI::Session->errstr;
        if ( $session->is_expired ) {
                die "Your session expired. Please refresh";
        } else {
                $session = new CGI::Session("driver:MySQL", $cgiquery, {Handle=>$db});
                $session->expire(3600);
}
print $session;

Jetzt macht er immer dann wenn die Session expired ist eine neue.

Zusätzliche Lektüre für dich:
CPAN:CGI::Session::Tutorial


Ausserdem wirfst du völlig unkontrolliert mit "my" um dich.
Bedenke dass Variablen die mit my deklariert werden immer nur im jeweiligen Block gültig sind.

D.h. du hast in deinem Beispiel plötzlich zwei verschiedene $session Variablen gehabt.
Eine die im Main Block und die zweite die nur im zweiten if Block gültig war.

Viele Grüße
Manuel
PCE - Editor für Perl in Perl
Bookzilla.de - Mit jedem Kauf OpenSource unterstützen
"I know I can't hold the hate inside my mind
cause what consumes your thoughts controls your life"
- Creed

View full thread sessionbasierter login mit perl