Tom: Automatisches ausloggen

Beitrag lesen

Hello,

Wo findet man ein Script, dass einen User automatisch nach 30 Minuten ausloggt?

Das Ganze nennt sich authentifizierte Session.
Du bracuhst als Basis die Session.
Auf diese Session setzt Du dann Dein "Loginsystem" auf.

1. Schritt:
   Session starten

2. Schritt:
   Benutzer verlangt Login

3. Schritt:
   Server sendet Anmeldeformular

4. Schritt Benutzer füllt es aus und sendet es zurück

5. Schritt:
   Server überprüft die Daten und merkt sich z.B. in der DB, dass diese Session
   zum Zeitpunkt <timestamp> für den User zertifiziert wurde
   und sendet das Menu zurück

6. Schritt:
   Benutzer nimmt beliebigen Request vor und sendet seine Session-ID mit

7. Schritt:
   Server guckt in die DB und sucht die Session-ID  (Besipiel mit MySQL)

"update LOGIN
    set LASTCLICK = now()
    where SESSION\_ID= ".mysql_real_escape_string($sessionid)." and
      LASTCLICK + $max_zwischenzeit > now() and
      LOGINTIME + $max_session_time > now()"

Und anschließend wird gefragt, ob mysql_affected_rows($con) == 1
   Dann ist der User noch "angemeldet"

Wenn Du den User nun abmelden willst, musst Du nur die Sessionnummer aus dem Datensatz entfernen lassen.

Die $max_zwischenzeit sollte auf jeden Fall kürzer bemessen sein, als die in der php.ini vereinbarte session.max_lifetime, die von ihrer Funktion her eigentlich session.min_lifetime heißen müsste!

Anderenfalls könnte es sein, dass der Aufräumservice der Basis-Sessionverwaltung des System (Garbage Collector) dir die Sessiongrundlage unter dem Hintern wegzieht.

Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau