Philipp Hasenfratz: Session-Verwaltung - Daten extrahieren

Beitrag lesen

@session_save_path ("<MEINPFAD>");
@session_start ();
$ipaddr = $REMOTE_ADDR;
@session_register("ipaddr");

Mit einem einfach auslesen des Verzeichnisses weiss ich also, wieviel Benutzer sich gerade auf der Site befinden. Wie kann ich diese Dateien nun elegant auslesen, um sie in einer "wer ist online" Tabelle darzustellen?

Irgendwo musst du die Informationen zum Benutzer speichern. Z. B. in einer Textdatei, in welcher alle ID's und Namen der Besucher gespeichert sind.
PS: Ich würde dir vorschlagen das nicht mit der IP-Adresse zu machen. IP's sind nicht so eindeutig, wie es die IP-Logik vorschreibt. Ich würde einfach eine Tabelle erstellen, mit Namen und Kunden-ID: Kommt ein neuer Kunde hinzu bekommt er die ID (max(Kunden-ID) + 1). Dies ist wirklich der sicherste Weg.

PS: Um nicht zuviele "Leichen" zu haben, lösche ich die Session-Dateien einfach, wenn Ihr Erstelldatum länger als 20 Minuten alt ist (bei jedem Klick des Benutzer wird das Datum aktualisiert) - gibt es auch dafür eine elegantere Methode?

Ja, mit Datenbank:
SELECT * FROM WhoIsOnline WHERE LoginTime<SUBTIME( CURTIME(), INTERVAL 20 MINUTES).
Mit deiner "Datei-lösung", glaube ich nicht.

PSS: Ich wollte bewusst auf die Nutzung der Datenbank verzichten, um nicht noch mehr Zugriffe heraufzubeschwören.

??? - Verstehe die Argumentation nicht.

Hoffe das Hilft

---Philipp