php缓存错误


php cache mistake

我的控制面板用户中有一个页面,需要密码通道

我这样做的顺序是:

  1. 转到"secret code request page",带一个参数,我想访问哪个页面
  2. 检查密码,如果正确,则用"hashed page name"填充会话变量
  3. 重定向到我想访问的页面
  4. 此页面检查"哈希会话"是否与此"页面名称"匹配
  5. 如果匹配,则清除会话并显示整个页面;如果不匹配,则重定向到初始页面

问题是:在第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');

但我还是得到了同样的结果。有什么建议吗?

updates:如果我不断刷新页面,在刷新3或5次之后,它会显示正确的值。如何使其实时?那么如果设置了会话,页面就可以直接检查设置的值,如果清除了会话,那么页面就会询问密码。?

在步骤4:print_r($_session)中转储会话,看看它是否已设置。如果没有,则需要在步骤2中设置它,然后进行重定向。

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