onlinestatus in DB schreiben, login mit Sessions

Megamorph

Mitglied
Hallo mal wieder :-)

ich habe ein Problem:

Ich möchte den Onlinestatus von usern in die DB schreiben. Ich habe ein ganz normales login mit sessions. In der DB habe ich dann ein Feld (neben user), worin eine 0 oder eine 1 für je Offline- oder Onlinestatus steht.

Das auf online setzen ist einfach: einfach beim login eine 1 darein schreiben.

Das Problem liegt beim "wieder offline setzen". Klar: Ich kann wieder eine 0 reinsetzen, sobald man auf 'logout' klickt. Aber wenn ich jetzt nicht den logout button benutze, sondern das Browserfenster einfasch schließe...
Wie kann ich dann eine 0 in die DB schreiben?

Thx for Help =)

mfg Megamorph
 
Zuletzt bearbeitet:
Das kannst du überhaupt nicht.
Was du tun kannst, ist, statt der 1 bei jedem Seitenaufruf den Timestamp in der DB zu speichern.... ist dieser dann älter als bspw. 15min, ist relativ wahrscheinlich, dass der Betreffende vondannen gezogen ist.
 
Ja thx^^
aber das war mir schon klar.
Ich weiß aber nicht, wie ich mit Hilfe des Timestamps jetzt den onlinestatus rausbekomme...

Da müsste auf irgendeinem Rechner ununterbrochen ein script laufen, der die Timestamps aus der DB mit dem aktuellen vergleicht und dann in die DB '0' für offline und '1' für online schreibt. Wie kann man das anders realisieren?

mfg Mega
 
Wenn ich es wie bei der 1. Antwort mache, dann würde einfach nur eine lange Zahl in dem Feld 'online' stehen. Wäre eine 1 oder eine 0 nicht aussagekräftiger?
 
Wie du in deinem Eingangsposting festgestellt hast, funktioniert das mit der 0 nur, sobald sich jemand ausloggt...was für gewöhnlich niemand tut.

Diese lange Zahl beinhaltet den genauen Zeitpunkt der letzten Aktion.... du musst diese Zeit nur mit der aktuellen Zeit vergleichen, und dann weisst du, wielange das her war.

Da muss auch nicht permanent ein Skript laufen.... es läuft ja schliesslich ein Skript, wenn jemand eine Seite anfordert...und wenn niemand eine Seite anfordert, ist es auch egal, ob jemand online ist, weil es niemandem angezeigt werden muss.

0/1 sind überhaupt nicht aussagekräftig...sie sagen nur jenes:
1==irgendwann hat sich mal jemand eingeloggt und nicht wieder ausgeloggt
0==irgendwann hat sich mal jemand ausgeloggt oder er hat sich noch nie eingeloggt
 
aso OK!
Danke, habe das bis jetzt nicht richtig begriffen, sry.
Ich brauche also keinen Script laufen lassen, der immer off oder on setzt. Das macht einfach der Script im Hindergrund, den der Benutzer aufruft.
THX
 
Erstelle am besten eine eigene Tabelle.
Darin enthalten ist die IP des Besuchers, ein Timestamp und bei Bedarf eine Spalte in der (wenn eingeloggt) die Usernummer kommt.

Dann erstellt du ein kleines script das beim Besuch der Seite sofort einen neuen Eintrag erstellt (dieses sollte möglichst überall included sein).
- Bei jedem Aufruf wird der Timestamp aktualisiert, fallst die ip bereits vorhanden ist.
- Wenn sich der User einlogt wird die User_ID in die oben erwähnte Spalte geschreiben.
- Bei jedem Aufruf wird überprüft ob irgendein Timestamp zu alt ist - wenn ja Eintrag wird gelöscht.

Jetzt kannst du:
- Die Einträgen zählen um zu sehen wieviele on sind.
- Alle Usernamen anzeigen lassen die on sind und die Gäste ( Spalte = 0 )

Is auch nich viel komplizierter als das in der User Tabelle zu machen, aber ich finds so besser. Ausserdem zählst du so auch Gäste.
 
Zurück