Automatisches ausloggen
Frank
- programmiertechnik
Hallo,
ich habe auf meiner Internetseite die Möglichkeit mich einzuloggen. Jetzt könnte man sich auch wieder ausloggen, wenn man den entsprechenden Link aktiviert. Wenn dieser Link aber nicht aktiviert wird, bleibt der User eingeloggt.
Wo findet man ein Script, dass einen User automatisch nach 30 Minuten ausloggt?
Hallo Frank!
ich habe auf meiner Internetseite die Möglichkeit mich einzuloggen.
Wie hast du diese Möglichkeit denn geschaffen?
Grüße
Damian
Ich habe mit PHP und HTML gearbeitet.
<input type usw.)
Ich habe mit PHP und HTML gearbeitet.
<input type usw.)
Du speicherst einfach beim Einloggen die Gültigkeitsdauer mit. Bei jedem Seitenaufruf kontrollierst du, ob der Benutzer noch in der Zeit ist und wenn ja setzt du eine neue Gültigkeitsdauer.
Aber pass auf wo du diese Zeitspanne speicherst, der Benutzer darf die natürlich nicht ändern können.
Das versuche ich mal aus.
Kennt sich auch jemand mit Sessions aus ?
Das versuche ich mal aus.
Kennt sich auch jemand mit Sessions aus ?
PHP-Handbuch
http://de.php.net/manual/de/ref.session.php
Selfhtml: Sessionbasiertes Loginsystem
http://aktuell.de.selfhtml.org/tippstricks/php/loginsystem/index.htm
Google:
http://www.google.de
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