我不希望用户在注销后通过单击后退按钮返回到安全页面。在我的注销代码中,我正在取消设置 session 并重定向到登录页面。但是,我认为浏览器正在缓存该页面,因此尽管 session 因注销而被破坏,它仍然可见。
我可以通过不允许浏览器缓存来避免这种情况
header("Cache-Control", "no-cache, no-store, must-revalidate")
但这样我就失去了浏览器缓存的优势。
请提出实现此目标的更好方法。我觉得,必须有一种方法可以通过 javascript 客户端处理这个问题
最佳答案
在 PHP 而不是 javascript 中实现它。
在每个页面的顶部,检查用户是否登录。如果没有,他们应该被重定向到登录页面:
<?php
if(!isset($_SESSION['logged_in'])) :
header("Location: login.php");
?>
正如您提到的,在注销时,只需取消设置 logged_in session 变量,然后销毁 session :
<?php
unset($_SESSION['logged_in']);
session_destroy();
?>
如果用户现在点击返回,将没有可用的 logged_in session 变量,页面将不会加载。
关于php - 注销后防止后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10511893/