Auto Logout
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktion
aktualisierung
aufruf
browser
datenbank
einloggen
eintrag
frage
hilfe
jemand
liste
minute
problem
realisieren
schau
sekunde
session
tabelle
warten
weiterer spieler
-
Hi!
Ich habe ein Problem. Auf meiner Seite wird beim Einloggen ein Eintrag in eine Tabelle geschrieben, damit auch andere User sehen können, wer momentan alles online ist (also alle in der Tabelle sind online). Beim Ausloggen wird der Eintrag gelöscht. Allerdings wird er nicht gelöscht, wenn ich den Browser einfach schließe. Dann wird nähmlich nur die Session gelöscht. Also der User ist zwar ausgeloggt, aber immernoch als online eingetragen. Ich könnte das natürlich mit Hilfe eines Cronjobs realisieren, finde aber, dass das etwas überzogen wäre. meine Frage ist also ob es eine Möglichkeit gibt den Eintragzu löschen, wenn die Session gelöscht wird.
Ich hoffe das das klappt, ansonsten dennoch vielen Dank im Vorraus,
MFG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du speicherst beim Einloggen einfach das Timestamp mit. Dieses bekommst du als Rückgabewert von der Funktion time(); . Bei jeder Aktion des Users wird dieses Timestamp aktualisiert. Sobald ein anderer sich ausloggt oder bei einem beliebigen anderen Event, löscht du alle Datensätze, deren Timestamp kleiner ist, als das aktuelle Timestamp - 600. Da das Timestamp in Sekunden gemessen wird, entspricht der Wert 600 gleich 10 Minuten. Ist ein User länger als 10 Minuten lang nicht aktiv, wird er als ausgeloggt betrachtet.
-
Okay aber wenn ich7 minuten nix mache und nur ein weiterer Spieler da ist, dann kann er die Seite schließen und ich sehe erst wenn ich oder jemand anderes etwas macht, dass er raus ist. Aber ich denke anderst kann ichs nicht lösen. Okay vielen Dank!
-
Wie wäre es, wenn du das einfach in das Script einbaust, das beim Aufruf die Liste mit den Usern die online sind, zeigt. Dann muss zuvor eine Aktualisierung statt gefunden haben.
-
Das ist aber ein Problem. Weil jeder kann zwar den datenbankeintrag eines users löschen aber seine session? ich müsste dann warten, bis der User doch wieder aktivwird und dann merkt das er ausgeloggt wurde und dann die session löschen. oder??
MFG
Beitrag zuletzt geändert: 26.8.2010 18:09:15 von programtools -
Was ist so schlimm daran, dass die Session weiter existiert? So wie ich das verstanden habe, läuft bei dir alles über die Datenbank, also schau doch nach, ob die Session noch gültig ist. Wenn er nicht mehr wieder kommt: Was soll's? Interessiert doch keinen.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage