Whoisonline

Julian Maicher

Erfahrenes Mitglied
Also, ich will überprüfen, welcher User z.Z. online ist. Das ganze möglichst genau. Ich hab mir zwar schon eine Möglichkeit überlegt, jedoch halte ich die nicht für optimal:

Bei jedem Aufruf der index.php wird der eingeloggte Benutzer mit Timestamp in die Datenbank eingetragen. Gleichzeitig werden alle bisherigen Einträge überprüft und mit dem aktuellen Timestamp verglichen. Unterscheiden sich beide Timestamps um z.B. 2 Minuten, wird der Eintrag gelöscht.
Was mich jedoch stört ist, wenn z.B. jmd. noch auf der Seite ist, aber seit 5 Minuten nichts macht bzw. sich auf einer Seite aufhält, dass er auch gelöscht wird. Dieser Fall muss also abgefangen werden.

Dazu habe ich auch schon eine kleine Idee:
Ganz kleiner i-Frame, der sich immer wieder refreshed. Jedoch halte ich die Methode irgendwie für "unsauber".

Deswegen frage ich mich, ob es da keine elegantere Variante gibt?
 
Etwas anderes, als im Hintergrund irgendetwas zu refreshen, wird nicht gehen.....weil....

PHP läuft serverseitig, ist ein PHP-Skript beendet, läuft der Rest auf dem Clientrechner....solange keine neue HTTP-Anfrage vom Client kommt, kannst du somit auch nicht wissen, wer grad wo ist.

Setze dein Zeitlimit etwas höher....vielleicht auf 15 min....alles andere halte ich für Quatsch .
 
Hatte auch mal das Problem, ich habs folgendermaßen gelöst:
Ich hab meine komplette Seite in 2 Frames aufgeteilt. Der 1. Frame bekam 100% und der zweite einfach 0%. Und im zweiten Frame hab ich per JavaScript ein Reload von ner Minute glaub ich eingebaut. So wurde das PHP Skript immer wieder ausgeführt, und hat so verhindert, dass die IP vom User vorzeitig gelöscht wurde.

Hoffe das ich dir helfen konnte.

sers
 
is es nicht schwachsinn, das ganze mit Frames zu machen? könnte man nicht einfach das JS auch so integrieren, muss man ja nicht geheimhalten wollen, dass da ein scirpt drin ist, dass die seite atomatisch neu lädt
 
Du könntest auf Frames verzichten.....

lade per JS in Intervallen per new Image() ein Bild.
Dieses Bild ist dein PHP-Skript, welches die Datenbank aktualisiert.... du brauchst es nicht einmal irgendwo anzeigen.... wichtig ist nur, dass die Bildadresse variiert(indem du per JS bspw. einen Timestamp ranhängst)..... damit der Brauser es auch wirklich neu vom Server holt.
 
Ja, das wär natürlich auch eine Möglichkeit. Aber bloß ein JS einbauen, dass die Seite refresht, die der User gerade ansieht, ist doch Blödsinn, oder?
 
Danke für die zahlreichen Antworten.
Direkt die Mainsite zu refreshen halte ich für Ungünstig und nicht gerade Benutzerfreundlich.
Die Idee von fautalus finde ich klasse. Werde ich auf jeden Fall mal probieren!
 
Zurück