Hallo,
ich habe folgendes Problem mit meinem Login-Script bzgl. dem Logout und der anschließenden
Betätigung des Zurückbuttons des Browsers (bis zum erneutem Senden des Login-Formulars)
Vorgehensweise:
1. User loggt sich ein (dabei werden Sessionvariablen registriert)... -> login.php
2. Er besucht "sichere" Seiten -> z.B. secret.php
3. Anschließend loggt er sich aus -> logout.php
Alle Dateien beinhalten folgenden Code, um Cache zu verhindern:
header ("Expires: 0"); // Datum der Vergangenheit
header ("Last-Modified: " . gmdate ("D, d M Y H:i:s") . " GMT"); // immer geändert
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache"); // HTTP/1.0
Die Datei secret.php enthält u.a. folgenden Code:
if(session_is_registered('login_user')){
$status = 1; //eingeloggt
}
else{
header('Location: /login.php');
}
Wird nun (nach dem Logout) das 1. Mal der Zurück Button aufgerufen (also zurück zur secret.php),
wird der User lt. o.g. Code auch zum Login-Formular geleitet...
BIS HIERHIN FUNKTIONIERT ALSO ALLES SO WIE ICH ES MÖCHTE
JETZT DAS PROBLEM
Betätigt der User nun ein 2. Mal den Zurück Button des Browsers (also nun von der secret.php zurück zur login.php),
"kann" der User das Login Formular erneut senden und ist somit trotzdem wieder eingeloggt.
Bsp.: http://test.desteiger.de/secret.php
Benutzername: test
Passwort: gast
Kann man dies irgendwie programmiertechnisch umgehen?
Ich habe zwar schon viel probiert (z.B. datenbankgestützt - Session_ID, User-ID, Timestamp in Datenbank schreiben;
oder auch nach dem Logout eine neue Session-ID erzeugen) aber ich komme einfach nicht zum gewünschten Ergebnis.
Funktionieren sollte es so, wie beispielsweise bei GMX...
Beim googlen finde ich immer nur die Lösung mit dem Code zur Verhinderung des Caches (siehe oben).
Dies funktioniert leider nur bis dahin, wie mit erneutem Betätigen des Zurückbuttons die login.php nicht erneut
aufgerufen und somit die Logindaten nicht erneut gesendet werden. (Im Beispiel also bis zur secret.php)
Würde mich freuen, wenn mir jemand weiterhelfen könnte.
Vielen Dank
Erri