AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] - Online Status anzeigen

Ein Thema von Grolle · begonnen am 10. Okt 2008 · letzter Beitrag vom 10. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#1

[PHP] - Online Status anzeigen

  Alt 10. Okt 2008, 13:25
Hallo,

weiß jemand einen vernünftigen Weg um den Online Status verschiedener angemeldeter
Personenen anzuzeigen. Wichtig: Wie regel ich das mit der Abmeldung (Nutzer schließt
einfach den Browser ohne Abmeldung).

Viele Grüße ...

// Verfügbar: Sessions, CronJobs, DB

  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: [PHP] - Online Status anzeigen

  Alt 10. Okt 2008, 13:36
Du speicherst einfach, wann der Benutzer die letzte Seite angefordert hat.

Alle Benutzer, die in den letzten 4 Minuten eine Seite angeforodert haben, sind online.

So in etwa. Du hast immer eine Toleranzzeit, die du geben musst. Wählst du diese zu kurz, werden online-User offline angezeigt. Zu lang, und offline-User werden online gezeigt.

Da HTTP ein Verbindungsloses Protokoll ist, kannst du den genauen Zetpunkt, wann ein Benutzer den Browser zu macht, nicht festmachen.
(Evtl. könntest du da n paar Sachen mit Javaascript machen, aber so richtig schön ist das immernoch nicht ...)

Edit:
Javascript könnte dir insoweit helfen, dass du bei einer Karaanzzeit von bspw. 3 Minuten alle 2,5 Minuten nen Ajax-Request sendest, dass der Benutzer immernoch online ist.

Abmelden im OnClose-Ereignis ist beim Tabbed-Browsing suboptimal
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#3

Re: [PHP] - Online Status anzeigen

  Alt 10. Okt 2008, 13:37
Hi,

also spontan würde ich sagen, wenn sich ein User anmeldet schreibst du seinen Nick und einen Timestamp in die Datenbank. Jedes Mal, wenn der User auf eine Seite klickt wird der Timestamp aktualisiert. Wenn der User sich ausloggt, entfernst du ihn aus der DB. Dann brauchst du nur noch überprüfen ob ein Timestamp älter als 5 oder 10 Minuten ist dann kennzeichnest du den User ebenfalls als ausgeloggt (würde dann zutreffen wenn er den Browser einfach geschlossen hat o.a.).
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#4

Re: [PHP] - Online Status anzeigen

  Alt 10. Okt 2008, 13:46
Zitat von Balu der Bär:
...entfernst du ihn aus der DP....
[OT] Warum muss der denn gleich aus der Delphi Praxis raus [OT]
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#5

Re: [PHP] - Online Status anzeigen

  Alt 10. Okt 2008, 14:05
Hi,

danke, das ist glaube ich der richtige Ansatz. Da ich Ajax sowiso einsetzte kann ich darauf ganz gut aufbauen

Viele Grüße ...

  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#6

Re: [PHP] - Online Status anzeigen

  Alt 10. Okt 2008, 14:08
Für was für ein System brauchst du die Funktion denn? Selbstgeschrieben? Vielleicht könntest du aus der viewonline.php des phpBB-Forensystems etwas Code "entnehmen" bzw. dir anschaun, wie die das machen.
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#7

Re: [PHP] - Online Status anzeigen

  Alt 10. Okt 2008, 14:10
Hi,

ja das System ist selbst entwickelt, aber ich werd beim BB mal reinschauen

Viele Grüße ....

  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: [PHP] - Online Status anzeigen

  Alt 10. Okt 2008, 15:00
also ich würd das problem mit ner session lösen und die daten in der DB speichern, das is am leichtesten.

hier sind mehrere lösungsansätze möglich:

1. wie gesagt user onlinestatus + timestamp speichern und toleranzzeit von 5min einbauen

2. du nutzt das onClose ereignis von javascript und rufst ne logoff funktion auf

beides zusammen ist ganz praktisch

du kannst timestamp und ipadresse genauso gut in ner textdatei speichern is aber etwas umständlicher


wenn du die onlinezeit genauer haben willst, denn bau ein unsichtbares iframe ein, dass alle paar sekunden die onlinezeit erneuert z.B. 30sek dann setzt du die toleranz auf 1min
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

Re: [PHP] - Online Status anzeigen

  Alt 10. Okt 2008, 15:45
Zitat von jokerfacehro:
2. du nutzt das onClose ereignis von javascript und rufst ne logoff funktion auf
Und wnn ich dann meherere Tabs offen habe, und eines schließe werde ich sofort ausgeloggt ?
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#10

Re: [PHP] - Online Status anzeigen

  Alt 10. Okt 2008, 15:57
Zitat von jokerfacehro:
2. du nutzt das onClose ereignis von javascript und rufst ne logoff funktion auf
Dumm nur, wenn JavaScript standardmäßig deaktiviert ist. Ich hatte das nervige Problem erst gestern, wo eine Webseite einfach nicht bedienbar war, bis mir einfiel das ich ja mal NoScript deaktivieren könnte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz