Ich lege Sessions in einer MySQL Tabelle mit dem TIMESTAMP von MySQL an - wie kann ich die Sessions überprüfen und alle Sessions, die z.B. 30 min alt sind, entfernen?
Mir gehts um das programmiertechnische, d.h. wie kann ich einen passendend aktuellen Timestamp erzeuen und ihn mit dem MySQL Timestamp verlässlich vergleichen? Die Implementierung ist mir dann schon klar :-)
Beispiel TIMESTAMP aus der aktuellen Datenbank: 2011-08-30 11:05:17
du kannst in MySql mit der Funtkion UNIX_TIMESTAMP ein Datum in einen entsprechenden Timestamp umwandeln. Dann brauchst du eigentlich nicht viel mehr als ein SQL Statement, welches du regelmäßig absetzt:
DELETE FROM deine_sessions_tabelle WHERE (UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(datum/uhrzeit der anmeldung)) > 1800;
Also: Lösche alles bei dem zwischen der Anmeldung und der aktuellen Zeit 1800 Sekunden (also 30 Minuten) liegen.
Das kannst du dann regelmäßig aus PHP aufrufen oder über ein MySql Event, oder.., oder...