Thread Session-Nutzung möglich?
(21 answers)
Opened by panni at 2012-02-27 12:39
Hi!
Ich möchte den Thread doch noch mal weiterführen. Aktuell versuche ich das Problem so zu lösen: - Nutzer loggt sich ein - ich erzeuge eine Session Code (perl): (dl
)
1 2 3 4 5 6 7 8 sub createSession{ my ($userId) = @_; $appSession = CGI::Session->new(); $appSession->param(-name=>'userId', -value=>$userId); $appSession->param(-name=>'userHash', -value=>$appSession->id()); $appSession->expire("userId", &getSessionExpireTime); return $appSession->id(); } - wenn der Nutzer wieder auf die Seite kommt und die SessionId mitschickt, lade ich die Session so Code (perl): (dl
)
1 2 3 4 5 6 sub checkSessionId { my ($userId, $sessionId) = @_; $appSession = CGI::Session->load($sessionId) or &errHandler::error(CGI::Session->errstr()); if ($appSession && ($userId == $appSession->param('userId'))) {return 1} return 0; } Dies klappt auch und ich habe mir keine weiteren Sorgen gemacht. Ich gehe davon aus, dass auf dem Server alle erzeugten Session gehalten werden und wenn dass ich per Code (perl): (dl
)
CGI::Session->load($sessionId) Wie gesagt, klappt. Was aber nicht klappt und das macht mich unsicher, ob das ganze Modell nicht doch falsch ist, ist folgendes: wenn ich mir die $sessionId und $userId eines anderen Nutzers geben lasse, liefert die Funktion "checkSessionId" eine "0" zurück. Lasse ich mir die Werte ausgeben, so sehe ich, dass $appSession defined ist, aber $appSession->param('userId') leer ist. Nur damit steht bzw. eher fällt die ganze Sache. Aber eigentlich müsste es mir doch möglich sein, eine beliebige Session zu laden, wenn ich denn die zugehörige SessionId kenne, oder verstehe ich da etwas falsch? Viele Grüße und vielen Dank, panni Last edited: 2012-03-14 14:13:13 +0100 (CET) |