Wiviele sind online?
-
Aber wie geht denn das genau? Ich habe keinen solchen Zähler gefunden...
-
Den gibt es afaik auch nicht fertig, du musst also (wenn du die standardmäßig eingestellten Dateien verwendest) alle Session-Files aus dem entsprechenden Ordner durchgehen und über das Zugriffs- oder evtl. Änderungs-Datum schauen, welche davon noch aktiv sind.
Wenn du die Sessions schon in einer DB-Tabelle verwaltet ist das ganze natürlich noch einfacher und du brauchst nur einen simplen SELECT
-
oder man baut sein eigenes handling indem man auf den php sessions aufbaut und eine tabelle "aktive user" anlegt und dort die letzte aktivitaet speichert. regelmäßig dann alle alten einträge löschen.
-
Ok, hört sich nicht allzuschwierig an, doch 1. Wo sind die Session - Dateien und 2. Wie weiss ich denn, ab wann die Session nicht mehr aktiv ist?
-
Andre24 schrieb:
Wo sind die Session - Dateien
Das kommt darauf an, was in der php.ini bei session.save_path angegeben ist
Andre24 schrieb:
Wie weiss ich denn, ab wann die Session nicht mehr aktiv ist?
Du legst einfach ein Timeout fest. Ist der letzte Dateizugriff länger her, definiest du die Session einfach als beendet.
-
Hmm... das ist aber eine sehr öde Möglichkeit... gibt es nichts besseres...? Ich mein... wenn jemand nach einer Stunde noch online ist aberseither die Seite nicht gewechselt hat... ist er doch eigentlich auch noch aktiv... aber dein Timeout hat nur 3 Minuten und danach wird er dir nichtmehr aufgelistet... nein... sowas ist blöd. Werden Sessions nicht automatisch gelöscht? - Die Dateien meine ich... existieren die nicht nur solange wie ein user online ist? - Dann müsste man doch einfach nur alle Dateien zählen.
-
Windoof schrieb:
Werden Sessions nicht automatisch gelöscht? - Die Dateien meine ich... existieren die nicht nur solange wie ein user online ist? - Dann müsste man doch einfach nur alle Dateien zählen.
Afaik werden die Sessions auf von PHP nach diesem Prinzip als inaktiv angesehen. (session.gc_maxlifetime) Da der Löschvorgang aber nur ab und an durchgeführt wird (in Abh. von session.gc_probability und session.gc_dividend) kannst du dich nicht darauf verlassen, dass nur Dateien von laufenden Sessions existieren.
-
Ein user ist aber streng genommen ja nicht richtig online. oder zumindest nicht länger als einen Seiten aufruf.
Deswegen bleiben die Session Dateien auch länger drauf, damit man überhaupt prüfen kann, ob eine Person schon ne Session hat.
Wenn sie sofort gelöscht wären, könnte man ja keine Session mehr zuordnen
-
Stimmt, da hast du recht... hmm... wenn man mal so überlegt... ist doch blöd. man müsste mal ein neues protokoll für websites entwickeln, das ständig alle paar sekunden einen byte sendet und damit guckt, ob ein user noch dran ist... das wär's doch mal...
-
Du kannst ja theoretisch irgendwo ein IFrame o.ä. machen, in dem du z.B. jede Minute einen Refresh durchführst, wenn es dir sonst zu ungenau ist
-
Und die armen armen Lynx-User? - Die können keine iframes anzeigen... und die ganze seite refreshen lassen... ne... das ist auch nix. nei, aber son neues Protokoll, wo der Serverdem Client alle paar Sekunden einen Byte sendet, sone art NOOP wie bei FTP, nur halt öfters dafür kürzere Bytefolgen.