Online/Offline - Ausgabe ?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Online/Offline - Ausgabe ?

Beitrag von Bones van Helghast »

Gibt es eine Möglichkeit dass ich per SQL und PHP wenn ich mich auf einen bestimmten Teil der Homepage von mir einlogge auf der Startseite als Online (Grünes Grafik-Bildchen) angezeigt werde wenn ich dann den Browser schließe oder auf Logout klicke soll das Grafik-Bildchen rot werden...

Der Login ist schon erstellt und läuft auch mit ner SQL-Datenbank aber ich weiß nicht wie ich das mit dem Online/Offline machen soll...
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Online/Offline - Ausgabe ?

Beitrag von Pyramide »

Code: Alles auswählen

$user_is_online = ...;  //prüfen, ob Benutzer online ist

if($user_is_online) {
  print '<img src="gruen.png">';
}
else {
  print '<img src="rot.png">';
}
KB:knigge
Benutzeravatar
Bones van Helghast
Mitglied
Beiträge: 157
Registriert: 19.09.2008 08:31

Re: Online/Offline - Ausgabe ?

Beitrag von Bones van Helghast »

Ja nein danke erst mal dass du mir hilfst.

Das hab ich schon gewusst nur ich meinte das Problem dass es in der DB gespeichert wird dass ich online/offline bin.
d.H wenn ich auf "Absenden" drücke und vorher passwort + benutzername eingegeben hab dann soll in der db genau bei dem nutzername auch online auf 1 stehen oder auf yes oder was weiß ich was es da gibt.
und anderst rum natürlich auch wenn ich dann auf logout geh also die sesson beende soll wieder auf 0 gehen oder auf no
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Online/Offline - Ausgabe ?

Beitrag von gn#36 »

Naja wie hältst du denn fest ob jemand angemeldet ist oder nicht? Das musst du doch sowieso nachhalten. Schreib doch einfach einen Eintrag in die Datenbank wo du den Timestamp bei jeder Aktivität aktualisierst und wenn dann jemand auf ausloggen klickt oder wenn der Eintrag zu alt wird (also keine Aktivität stattfand) dann wird der Eintrag entfernt und der User gilt als Offline.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Re: Online/Offline - Ausgabe ?

Beitrag von AmShaegar »

Bones van Helghast hat geschrieben:...dann soll in der db genau bei dem nutzername auch online auf 1 stehen oder auf yes oder was weiß ich was es da gibt.
und anderst rum natürlich auch wenn ich dann auf logout geh also die sesson beende soll wieder auf 0 gehen oder auf no
Das ist der falsche Ansatz. Wenn du den Browser schließt, dann wird ja nichts mehr an die Datenbank gesendet. Das heißt, du musst sicherstellen, dass es genügt, beim letzten Seitenaufruf einen Datenbankeintrag zu erzeugen.
Das stellst du, wie schon von gn#36 erwähnt, an: Statt deiner 1 oder 0 speicherst du bei jedem Seitenaufruf den aktuellen Timestamp in der Datenbank. Dann kannst du bei deinem "Online"-Button abfragen, ob der Timestamp älter als zum Beispiel 5min ist. Wenn ja, dann ist der Benutzer eben Offline. Beim Logout kannst du den Timestamp auf 0 setzen, dann ist er definitiv älter, oder du speicherst das nochmal extra, dann kannst du beim nächsten Login, bevor du den neuen Timestamp einträgst noch ausgeben, wann man zuletzt eingeloggt war.

Code: Alles auswählen

if($user_timestamp > time()-5*60) {
  echo "Online";
} else {
  echo "Offline";
Keine Garantie auf Richtigkeit, hab seit nem halben Jahr nix mehr in PHP geschrieben.
Antworten

Zurück zu „Coding & Technik“