Session Frage :o)

itnobby

Mitglied
Hallo zusammen,

ich arbeite mit Sessions, das heisst
ich registrier die Session z.bsp. mit:

$_SESSION['user'] = "dieter";

Diesen Namen "dieter" speichere ich in der Datenbank mit Login Datum etc.
Klickt der User auf Ausloggen so wird die Session zerstört und der Eintrag
aus der Datenbank gelöscht.

Nun habe ich aber das Problem wenn ein Benutzer das Fenster einfach schliesst, wie finde ich nun heraus ob die Session beendet ist oder so damit ich den Eintrag aus der Datenbank entfernen kann?
 
Ich würde dazu einfach immer den letzten Klick eines Users in der selben Tabelle speichern (Timestamp). Ist der Klick länger als x Minuten her, dann nimmst du an, dass der User nicht mehr aktiv ist.
 
Das kannst du so gar nicht machen. Du kannst nur eine Maximal-"Lebensdauer" einer Session festlegen.
Das ist unter http://www.php.net/session beschrieben.

Warum speicherst du aber Daten, die eh temporaer sind, in der Session UND in der DB? Da wuerde es doch reichen, die in der Session zu lassen, nach dem Ablauf der Maximallebensdauer werden die dann eh automatisch entfernt.

Wenn du wirklich daten aus der DB nach einiger Zeit loeschen willst, kannst du das so machen:
http://www.dclp-faq.de/q/q-mysql-loeschen.html
 
Danke!

Gibt es den eine Möglichkeit alle Sessions irgendwie ausgeben zu lassen
Das mit der DB ist nämlich die Übersicht der Mitglieder die Online sind.
 
@ Zatic:
Für so eine "Wer ist online?"-Übersicht macht es denke ich schon Sinn, die Daten in einer Datenbank zu speichern.
 
immer schön wenn man das problem lösen konnte. Allerdings wäre es auch schön wenn du den Lösungsansatz mitteilen würdest. Würde mich interessieren.
 
Zurück