Automatischer Logout - Userstatus

Pumaxs

Grünschnabel
Mahlzeit !
Ich verwende das LoginSystem von dem Tutorial dieser Seite!
Nun habe ich mir noch ein eigenes Automatisches Logout Script dazu geschreiben, allerdings funktioniert dieses nicht ganz so wie ich es mir vorgestellt hatte.

Das Script schreibt beim Login die aktuelle Zeit plus 120 Sekunden in eine Variabel und setzt in der Datenbank die Statusflag auf 1 damit andere User auf dem Profil sehen können das der User online ist.

Code:
$_SESSION[start_time]= time()+120;
 mysql_query("UPDATE user SET status='1' WHERE id=$_SESSION[user_id]");

Nun klickt der User sich durch die Seite und schläft dann nebenbei für 120 Sekunden ein. Wenn er dann weiter klicken will wird er automatisch ausgeloggt.

Code:
if($_SESSION["start_time"] < time())
{
mysql_query("UPDATE user SET status='0' WHERE id=$_SESSION[user_id]");

session_unset ();
session_destroy ();

header ("Location: index.php?logout=1");
}

Nun habe ich aber das Problem das die Informations Flag in der Datenbank auch nur dann auf 0 gesetzt wird wenn der User nochmal versucht was anzuklicken. Verlässt er aber die Seite ohne auf Logout zu klicken oder nach 120 Sekunden irgendwas anderes anzuklicken, bleibt die Statusflag auf 1 und andere User sehen ihn als online... das ist mist !

Wie kann ich also die Datenbank dazubringen die Satusflag nach 120 Sekunden auf 0 zusetzten ?

Danke

Pumaxs
 
Am besten speicherst du den Zeitpunkt der letzten Aktivität in die Datenbank und setzt in deinem Query die WHERE-Bedingung, dass die letzte Aktivität maximal 120 Sekunen alt sein darf. Einen Online-Status (0|1) brauchst du dann nicht.
 
Zurück