Sitzung leer Zurück Button Browser-Cache

Ich weiß, dass dies eine häufige Frage ist, aber es scheint nicht, dass dies funktioniert.

Ein Benutzer meldet sich an und eine Sitzung und eine Variable wird hinzugefügt.

Dann meldet sich der Benutzer ab und ein PHP-Skript wird ausgeführt und die Sitzung wird zerstört.

Ich drucke die Sitzung nach dem Abmelden auf der Seite index.php aus und sie ist leer.

Aber der Benutzer kann immer noch die Anmeldeseite sehen, wenn er zurück drückt ???

Ich verwende den folgenden Code, um die Sitzung zu zerstören:

session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
unset($_SESSION["username"]); 
header("Location: index.php");

Hiermit können Sie testen, ob die Sitzung auf der Seite index.php zerstört wurde:

print_r("session".$_SESSION);

Jede Seite hat auch diesen Code, um das Zwischenspeichern zu verhindern:

 header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Date in the past
 header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
 header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
 header ("Pragma: no-cache");

 <meta http-equiv="expires" content="WED, 01 JUL 2009 05:00:00 GMT" />
 <meta http-equiv="cache-control" content="no-cache" />
 <meta http-equiv="pragma" content="no-cache" />

Ich kann erfolgreich verhindern, dass der Benutzer die URL der Webadresse eingibt und mit dem folgenden Code auf die sicheren Seiten zugreift:

if(!isset($_SESSION['user']))
{ 
echo 'no session in here';

session_start();
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
$_SESSION['username'] = '';
header("Location: index.php");
die("Redirecting to: index.php"); 
} 

Antworten auf die Frage(1)

Ihre Antwort auf die Frage