Hallo muenzchen,
das excerpt hat Dir Soenke ja schon mitgeteilt.
PHP hat einen GC = Garbage Collector. Der läuft aber nur unter Unix-Systemen und auch nur, wenn das Session-Verzeichnis nicht tiefer als zwei Verzeichnisebenen von / weg ist. Also /tmp/sessions/ ginge noch. Du solltest nämlich dringend die Sessiondateien aus dem tmp-Verzeichnis verlegen in eines, auf dass nur der der "PHP-Deamon" Zugriff hat. /tmp ist normalerweise durch alle User beschreib- und lesbar. Wie das die Provider machen, ist mir auch noch nicht klar.
Gut: dieser GC sammelt wird immer beim Aufruf der session_start()-Funktion angestoßen und läuft dann, je nach eingestelltert Wahrscheinlichkeit, los um alle Sessions, die älter sind als session.gc_maxlifetime zu löschen. Das funktioniert, aber nicht wirklich gleich nach Ablauf der eingestellten Lebensdauer. Wir haben das ziemlich lange beobachtet und manchmal waren die Dateien erst am nächsten oder übernächsten Tag wieder verschwunden.
Lösungsansatz:
Lass die User über die Logindatei laufen...
Trag die Sessionnummer in die Logindatei in den Userdatensatz ein
Bei jedem Formularwechsel trägst Du den letzten Zugriff (Datetime) ein.
Wenn Du jetzt Deine Datenbank abfragst und ein Zeitraster von ca. 5-15 Minuten einhältst, bekommst Du ungefähr ein Gefühl über die Anzahl der User.
Das ist hier schon ganz oft diskutiert worden. Und es gibt auch viele Leute, die sowas niemals machen würden. *ggg* Aber ich selber halte in einem Forum, in dem die User eigenen Seiten haben, das für eine gute Einrichtung, wenn man sieht, ob derjenige vielleicht gerade "online" ist, wohl wissend, dass das für seinen Klick von vor 10 Minuten galt.
Man kann natürlich auch eine "Onlineanzeige" in deie Seite einbauen. Dort könnten die neusten 20 Klicks angezeigt werden. Einziger Sinn dieses Frames ist aber, es über JavaScript oder meta-refresh aller 30 Sekunden beu aufzurufen, um auf der anderen Seite die Info auswerten zu können, ob der User (besser: sein PC) noch da ist.
Liebe Grüße aus http://www.braunschweig.de
Tom
Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.