我遇到了浏览器缓存(显然很常见)的问题,我的安全页面可通过后退按钮访问(用户注销后).
这是我的logout.php
<?php
// 1. Find the session
session_start();
// 2. Unset all the session variables
$_SESSION = array();
// 3. Destroy the session cookie
if(isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
// 4. Destroy the session
session_destroy();
redirect_to('index.php?logout=1');
?>
Run Code Online (Sandbox Code Playgroud)
这成功地在IE7,IE8,Chrome和Firefox上注销用户 - 但在Safari中,我可以按后退按钮(在注销后立即)并仍然可以看到安全内容.如果我刷新安全页面,它会将我引导到登录屏幕(应该如此).
我尝试过使用:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
Run Code Online (Sandbox Code Playgroud)
......但它没有效果.有人可以提供任何建议吗?我发现这篇关于浏览器缓存的文章,但我还没有在其中找到答案......虽然我确实找到了:
<?php
Header("Cache-Control: must-revalidate");
$offset = 60 * 60 * 24 * 3;
$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
Header($ExpStr);
?>
Run Code Online (Sandbox Code Playgroud)
......这也解决不了"问题".嗯.