如何在codeigniter中删除浏览器历史记录?

Posted

技术标签:

【中文标题】如何在codeigniter中删除浏览器历史记录?【英文标题】:how to remove browser history in codeigniter? 【发布时间】:2012-04-20 14:21:49 【问题描述】:

您好,我正在开发一个项目(php-CodeIgniter、mysql)。在我的应用程序中,我在用户成功登录后为用户数据(用户 ID、用户名)创建会话,并在注销后取消设置会话。

“这里的主要问题是如果我点击浏览器的后退按钮,我也可以在注销后在我的应用程序中看到以前访问过的页面”。

如何使用 codeigniter 防止这种情况发生?

提前致谢

【问题讨论】:

【参考方案1】:

只需在.htaccess RewriteEngine on 之后添加这些行

<Files *>
    Header set Cache-Control: "private, pre-check=0, post-check=0, max-age=0"
    Header set Expires: 0
    Header set Pragma: no-cache
</Files>

我更喜欢这个,因为我们只需要在一个地方添加它(.htaccess),它会影响整个应用程序。

【讨论】:

【参考方案2】:

有一些 javascript 方法可以停止使用后退按钮(如 Raheel 所述),但对此类行为的可靠控制可能会很棘手。例如,如果用户在一个页面上并且可以看到它,那么没有什么可以阻止他们截屏。

您还应该确保发送正确的标头以停止缓存页面:

$this->output->set_header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");
$this->output->set_header("Cache-Control: post-check=0, pre-check=0", false);
$this->output->set_header("Pragma: no-cache");  

来源:http://codeigniter.com/forums/viewthread/137096/#675799

即使这样,我也不确定是否所有浏览器都会遵守标头,但这是一个好的开始。

【讨论】:

【参考方案3】:

登出时虽然可以访问上一页但不能进行活动。如果您执行任何活动,它应该首先将您重定向到登录页面。

【讨论】:

是的,它会重定向.. 但在这种情况下,它不应该显示以前的页面 一定会显示的。顺便说一句,这可能会给你一个好主意。 daniweb.com/web-development/javascript-dhtml-ajax/threads/60682/…

以上是关于如何在codeigniter中删除浏览器历史记录?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除IE浏览器的表单历史记录?

如何查看和删除网络连接历史记录

怎样删除历史纪录。

Edge浏览器怎样设置退出时删除浏览历史记录?

怎么删除历史记录?

火狐浏览器如何像IE一样查看临时文件和历史记录