【问题标题】:Codeigniter disabling browser page caching for admin panelCodeigniter 禁用管理面板的浏览器页面缓存
【发布时间】:2017-07-18 09:06:59
【问题描述】:

我正在使用 codeigniter 3.1.5 HMVC 开发一个网站,现在我正在编写管理面板。

我设计了登录屏幕和仪表板面板。我可以成功登录和注销,会话等没有问题。

但我的问题是,我的浏览器 (Chrome) 正在缓存我的仪表板页面,注销后,当我单击浏览器上的“返回”按钮时,我可以看到缓存的仪表板页面,但我想禁用它。 (当我刷新页面时,它会将我重定向到登录面板)

我怎么知道问题出在浏览器上?

我正在本地 wamp 服务器上开发该站点。注销后,我停止了 wamp 服务器并单击返回按钮并浏览器加载页面(但它不应该加载,因此它来自浏览器的缓存)

我在控制器的每个位置(在构造函数中或注销后等)都尝试了这些代码,但没有解决问题。

    $this->output->set_header("HTTP/1.0 200 OK");
    $this->output->set_header("HTTP/1.1 200 OK");
    $this->output->set_header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
    $this->output->set_header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' 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");
    $this->output->set_header("Pragma: no-cache");

我该如何解决这个问题? 谢谢,最好的问候。

【问题讨论】:

  • 解决方案是Post/Redirect/Get
  • 好的,能给我一些示例代码吗?
  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。请参阅How to Ask 页面以获得澄清此问题的帮助。编辑您的问题并发布当前代码。含义控制器代码至少在哪里是登录/注销逻辑。
  • @Tpojka 谢谢你的回答。我试过你的建议,现在它对我有用。在应用 Post/Redirect/Get 时,我使用了这种模式:link。非常感谢:)
  • 快乐编码。 :)

标签: php codeigniter session caching


【解决方案1】:

不确定,但使用给定的标头 Cache-Control 代码和 max-age=0

$this->output->set_header("HTTP/1.0 200 OK");
$this->output->set_header("HTTP/1.1 200 OK");
$this->output->set_header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
$this->output->set_header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT');
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
$this->output->set_header("Cache-Control: post-check=0, pre-check=0");
$this->output->set_header("Pragma: no-cache");

【讨论】:

  • 感谢您的回答。我应该在哪里找到这条线?
  • 现在检查。为您编辑了答案。让我知道它是否有效。
  • 不。我想我应该尝试@Tpojka 的方法。谢谢。
猜你喜欢
  • 2017-06-14
  • 1970-01-01
  • 2016-05-13
  • 2014-05-26
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
相关资源
最近更新 更多