Ich bin also auf die Requests anderer User angewiesen um einen bestimmten User auszuloggen, der nicht mehr aktiv war.
Gibt es denn keine Möglichkeit eine Art Mini-PHP-Agent einzuschalten, der alle 5 Minuten ein Code ausführt?
Ich sehe dein problem als allgemeines Session-Problem. meine eigenen Sites sind genau so davon betroffen.
Ich arbeite mit Perl. Auf der Ebene von HTTP gibt es aber keine Unterschiede.
OK. Ein User kommt. Ich gebe ihm eine SID, wenn ich ihn nicht erkenne/er keine SID sendet.
Wie lange ist die SID gültig? Nennwen wir die Zeit T
Ich muss mit der SID imer einen timestamp loggen.
Ein Request basiert immer auf zwei Zugriffen des Session-Logfiles.
zuerst: Suche nach einer Session und hole Daten
... mache dein Zeugs
Speichere Änderungen in der Session
Während diesem Speichern kann ich nun ALLE Sids überprüfen, ob welche veraltet sind. Das heisst: Irgend ein Request hilft mir beim Aufräumen verbrauchter Sessions.
Login/Logout: Das ist eine zu den Sessions orthogonale Rechte-Registrierung. Ein User ist bei mir dann in seinem Login Status, wenn seine Session einen Userstatus aufweist, der ihm Rechte gibt über einen Gast hinaus. Das Können Mitglieder-Rechte, Subadmin-Rechte oder Admin-Rechte sein.
Ein Logout ist entweder aktiv, dadurch dass ein angemeldeter User seine Session killt und damit in den Default-Status eines Gastes gerät
oder passiv möglich, indem _irgend_ eine Request-Behandlung feststellt, dass die Session dieses Users ihre Lifetime überschritten hat.
Im letzteren Fall habe ich aber keine Möglichkeit, dies dem betroffenen User aktiv mitzuteilen. Er wird es erst beim nächsten Request feststellen.
Was ich aber tun kann:
Ich kann mit JS dem User mitteilen (countdown) wie lange seine aktuelle Seite noch gültig ist in dem Sinne, dass auf dem Server eine gültige Session vorliegt.
Ein eingeloggter User kann also auf die countdown Uhr schielen und selbst entscheiden, ob er die Session stillschweigend sterben lassen will, oder durch einen neuen Request die Lifetime erneuert, also eingelogged bleibt.
Falls der User sich wo anders verweilt, wird der obige Automatismus die Session killen.
So sehe ich das.
mfg Beat
--
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische