php缓存错误

时间:2012-01-05 08:13:33

标签: php caching http-caching

我的控制面板用户有单页需要密码才能  访问。

我这样做的顺序是:

  1. 转到“密码请求页面”,其中包含我想要访问的页面的参数。
  2. 检查密码,如果正确,则用“散列页面名称”填充会话变量
  3. 重定向到我想要访问的页面。
  4. 此页面检查“散列会话”是否与此“页面名称”匹配
  5. 如果匹配,请清除会话并显示整个页面,如果不匹配,则重定向到初始页面。
  6. 问题是:在步骤4,页面有时会读取延迟会话 更新。有时它显示没有价值,但很多时候它显示了 正确的值,如果我刷新页面,会话仍然有 正确的散列数据(在步骤5,如果匹配,我已经清除了会话 变量),怎么样?

    我尝试使用mysql更改带有数据记录的会话变量,但是 我得到了同样的结果。 phpmyadmin显示已设置的记录,但是 该页面显示没有数据集。否则,记录删除后, 页面仍然显示以前的记录值。

    这是否意味着缓存存在问题?我也做了标题没有缓存 如:

        header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
        header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
        header('Cache-Control: no-store, no-cache, must-revalidate');
        header('Cache-Control: post-check=0, pre-check=0', false);
        header('Pragma: no-cache');
    

    但我的结果仍然相同。有什么建议吗?

    更新:如果我继续刷新页面,在刷新3或5之后,它会显示正确的值。如何让它实时?那么如果会话设置,页面可以直接检查设置的值,如果会话清除,那么页面会询问密码。?

1 个答案:

答案 0 :(得分:1)

在第4步中转储会话:print_r($ _ SESSION)以查看它是否已设置。如果没有,您需要在步骤2 之前设置 进行重定向。

另外,不要忘记在每个文件上调用session_start()。