Problem beim vorzeitigen Session Ende.
lvl
- php
Hi Folks ;)
Hab da nen kleinen, bzw. grooooßes Problem mit Sessions.
Ich habe da eine kleine Community mit einem Passwort geschützten Bereich. Beim Login speicher ich die wichtigen User Daten in einer Session. Damit kann ich auch auf jeder Seite kontrollieren, ob der User der die Seite betreten will, diese auch betreten darf.
Zusätzlich Speicher ich die Zeit wann sich ein User einloggt.
(Kein Problem, kann ich mit dem Login machen.)
Wenn ein User auf Logout klickt, kann ich ohne Probleme die Zeit eintragen, wann der Benutzer sich abgemeldet hat.
Nun mein Problem, wenn ein Benutzer längere Zeit nichts gemacht hat, "zerstört" sich die Session ja selbst(nach einer gewissen zeit).
Sollte das der fall sein, möchte ich das er auch die Logout Zeit speichert, nur hab ich keine Idee wie?
Was Du machen könntest: Du könntest in Abständen ein SCript laufen lassen, dass in der DB sämtliche Datensätze überprüft, bei denen keine Auslogg-Zeit eingetragen ist und deren Login schon so lange Zeit zurückliegt, dass man davon ausgehen kann, dass der User sich nicht richtig ausgeloggt hat (z.B. 1 Tag). Dann setzt Du in das Feld mit der Logout-Zeit einfach die Login-Zeit + 60 min. (Oder auf was die Session-Timeout-Zeit eingestellt ist).
Das ließe sich auch per cronjob regeln..
(Oder auf was die Session-Timeout-Zeit eingestellt ist).
Wo kann ich denn nachschauen auf meinem Server wann eine Session ungültig wird?
(Oder auf was die Session-Timeout-Zeit eingestellt ist).
Wo kann ich denn nachschauen auf meinem Server wann eine Session ungültig wird?
Dazu mußt Du in die Datei php.ini schauen und nach folgendem Eintrag suchen:
session.gc_maxlifetime
Dort wird die Zeit festgelegt, nach der alle Sessiondaten zerstört werden.
session.gc_maxlifetime
Sind dort die Sekunden angegeben?
session.gc_maxlifetime
Sind dort die Sekunden angegeben?
schau nach :)
hi,
Dazu mußt Du in die Datei php.ini schauen und nach folgendem Eintrag suchen:
session.gc_maxlifetimeDort wird die Zeit festgelegt, nach der alle Sessiondaten zerstört werden.
Nein.
Dort wird die Zeitspanne angegeben, nach der die Sessiondatei nach dem letzten Zugriff vom garbage collector entfernt werden _darf_.
Die Bezeichnung ist irreführend - eigentlich ist es eine minlifetime.
gruß,
wahsaga