2010-11-01 4 views
15

Ich bin mir nicht sicher, was wäre der einfachste Weg, dies zu tun. Ich muss in der Lage sein zu erkennen, welche Benutzer auf meiner Website online sind. Wenn also ein Thread oder etwas angezeigt wird, wird neben dem Benutzernamen angezeigt, ob es sich um ONLINE oder OFFLINE handelt. Und am Ende des Forum-Index wird es alle Benutzer sagen, die online sind.Online-Benutzer erkennen?

Was wäre der einfachste Ansatz, um so etwas zu tun? Ich bin mir nicht sicher, ob ich ein Javascript brauche, das jedes Mal ausgeführt wird, wenn eine Seite geladen wird oder was.

Thanks :)

+3

Verwenden Sie kein Javascript dafür. – drudge

+0

Welches Forum und welche Version verwendest du? Wenn etwas vorgefertigt ist wie IBP/InvisionFree, oder PHPBB usw., dann existiert diese Funktionalität normalerweise bereits in Ihrem Forum Control Panel. –

+3

Ich bin benutzerdefinierte Codierung meines eigenen Forums. :) – Cory

Antwort

20
  • hat eine MySQL-Datenbank mit einem Benutzertabelle
  • hat eine Spalte in dieser Benutzertabelle, die den „zuletzt gesehen“ -Zeit
  • Update speichert diese Spalte auf jeder Seite Anfrage
  • wenn für Online- oder offline-Überprüfung, ob aktuelle Zeit minus einiger treshold „zuletzt gesehen“ -Zeit größer als Sie

Bearbeiten: Sie können optional ein JavaScript "ping" den Server (fordern Sie eine leere Seite) alle zwei Minuten oder so, wenn Sie möchten, dass Menschen im Leerlauf mit Ihrer Website geöffnet werden, auch als online angezeigt werden.

+1

ja das ist wahrscheinlich der beste Ansatz – Breezer

+0

Genau das, was ich dachte. Wie ich eine letzte Zeit haben würde. Und stellen Sie online, um zuletzt gesehen innerhalb von 5 Minuten oder so. Ich wusste nicht, ob das der beste Weg war. – Cory

+0

Wann sollte die zuletzt gesehene Spalte aktualisiert werden? Jede Seite lädt? – Cory

1

Sie müssen eine Art "Sitzung" -Tabelle halten, in der Sie den Benutzer und den Zeitpunkt des Besuchs einer Seite halten.

Wenn die Zeit älter als 5 Minuten ist, ist der Benutzer offline (und die Zeile kann gelöscht werden). Die anderen Benutzer in der Sitzungstabelle sind "online".