Offline wenn man die Sete Verlässt.
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abwesenheit
aktion
ansatz
befehl
benutzer
browser
code
datensatz
entsprechenden feld
genauer bestimmen
jemand
login
minute
sekunde
senden
server
status
tab
zeitlimit
zeitpunkt
-
Hallo,
Ich habe keine Idee wie ich das machen kann das wenn man den Tab meiner Seite Schließt das man dann direkt offline ist.
Denn Derzeit ist das bei mir so das wenn man sich einloggt direkt in die Datenbank ein Update befehl geht und der User dann online steht.
Aber wenn man nicht auf Logout Klickt bleibt man Online bis man es Klickt.
Und das möchte ich ändern.
Weiß jemand wie?
Hat das Jemand nicht Verstanden kann ich es Selbstverständlich noch Deutlicher Erklären. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Vermutlich ists wesentlich besser, wenn du den Online-Status nicht in einer DB speicherst, sondern die PHP-Sessions benutzt. Das löst zwar dein Problem nicht ganz, weil man nicht beim Schließen des Tabs ausgelogt wird, sondern beim löschen der Sessiondaten im Browser, aber das währe schonmal ein Ansatz.
-
<body onunload="logout()">
function logout () { //AJAX-Request auf logout.php }
LG cookies -
Ich habe das allgemein immer so gelöst, dass ich den Zeitpunkt der letzten Aktion im Datensatz des Users gespeichert habe (der Wert wird also bei jeder Aktion upgedatet). Für den Status habe ich dann einfach überprüft, ob der aktuelle Timestamp minus den gespeicherten kleiner als 300 (5 Minuten) ist - wenn ja, ist der Benutzer wahrscheinlich noch online, wenn nicht, dann nicht.
Beim Logout setze ich den Wert auf null - so wird der Benutzer beim Logout auch gleich als Offline angezeigt.
Außerdem kannst du dann beim nächsten Login den User sogar drauf hinweisen, dass er sich eventuell nicht ausgeloggt hat - nämlich, wenn noch ein Wert im entsprechenden Feld seines Datensatzes steht.
Alternativ könntest du den User auch alle paar Sekunden ein XML-Request senden lassen um zu zeigen, dass er noch da ist. Damit lässt sich seine An-/Abwesenheit noch viel genauer bestimmen.
gruß
ferdinand24 -
Aha.
Ich werde das mal machen und etwas Coden.
Aber bitte den Thread nicht Schließen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage