php - 注销后防止后退按钮

标签 php javascript jquery

我不希望用户在注销后通过单击后退按钮返回到安全页面。在我的注销代码中,我正在取消设置 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/

相关文章:

jquery - 使用 jquery 取消隐藏时,fontawesome 图标不旋转

php - 不将数据插入 wp_users 表中的自定义字段

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

javascript - 通用 Angular2“WeakMap”未定义

jquery - 使用开始标签与自结束标签创建空元素

jQuery 选择器确定 'or' ?

Php - 使用 join() 时我可以忽略/跳过空字符串吗

javascript - 保持复选框被选中,刷新并提交后

javascript - Umbraco-Images 不显示现有 HTML 标记

javascript - ExpressJS 中的 POST 请求问题