Page 1 of 1
PHP - Sessionwert aus Datenbank löschen
Posted: 2007-10-25 15:28
by shadoan
Hallo,
ich habe eine Session erzeugt in einem PHP-Skript, deren ID ich in einer Datenbank speichere.
Nun möchte ich gerne besagte ID nach Zerstörung der Session oder nach X Minuten wieder löschen.
Wie wäre das lösbar?
Re: PHP - Sessionwert aus Datenbank löschen
Posted: 2007-10-25 15:36
by Joe User
Code: Select all
DELETE FROM sessions WHERE id = (int) $id
Re: PHP - Sessionwert aus Datenbank löschen
Posted: 2007-10-25 22:12
by smoove
Du könntest in der Datenbank einen "expiretime" Wert einfügen, der beim Login und bei jedem Seitenaufruf auf time()+xSekunden gesetzt wird, und dann entweder per Cronjob, oder, wenn du keine Cronjobs hats wieder bei jedem Seitenaufruf alle abgelaufenen Einträge löschen. Ist dann natürlcih etwas mehr "Datenbank Action" bei jedem Seitenaufruf :/
Mal gucken, villeicht fällt mir noch was besseres ein - das oben war jetzt spontan ;)
mfg. smoove :)
Re: PHP - Sessionwert aus Datenbank löschen
Posted: 2007-10-25 22:53
by flo
Code: Select all
SELECT login, name FROM TABELLE WHERE (t_expire > NOW()) AND SESSION='jsdlkfjghdlkfjhg'
Und dann diejenigen dynamisch um Zeit x verlängern, die Zugriffe haben - die anderen laufen dann von ganz alleine ab und wenn die Session (zer|ge)stört wird, fehlt der Schlüssel, d.h. in jedem Fall kommt nur eine row zurück.
Wenn man die Werte aus der Tabelle nicht braucht, kann man das Update damit zusammenfassen und über "affected rows" ermitteln, ob ein(!) Datensatz modifiziert wurde.
Jeden Tag kann dann ein Cronjob mit "delete" die alten Sessions entfernen und Aufräumen.