【发布时间】:2012-01-05 08:13:32
【问题描述】:
我的控制面板用户中有一个页面,需要密码才能 使用权。
我这样做的顺序是:
- 使用我要访问哪个页面的参数转到“密码请求页面”。
- 检查密码,如果正确,则使用“散列页面名称”填充会话变量
- 重定向到我想访问的页面。
- 此页面检查“哈希会话”是否与此“页面名称”匹配
- 如果匹配,则清除会话并显示整个页面,如果不匹配则重定向到初始页面。
问题是:在第 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 次后,它会显示正确的值。如何使其实时?那么如果session设置了,页面可以直接查看设置的值,如果session清除了,那么页面会询问密码。?
【问题讨论】:
-
甚至试图查看调试控制台,看看你从哪里读到什么,你有代理吗?
-
什么问题,为什么页面不能显示会话变量的当前值/mysql记录值?
标签: php caching http-caching