我使用 gcache 将整个网站页面缓存为 HTML,然后我只阅读它并向用户显示。它看起来像这样:
$enableCache = true;
if ($enableCache)
{
include("gcache.php");
$cache = new gCache;
$cache->folder = "temp/";
$id = join("", $_GET);
$id = ereg_replace("[^A-Za-z0-9]", "", $id);
$cache->contentId=$id;
$cache->timeout = 5;
/* its mean gCache cached the whole page */
/* so, gcache, decide if he must response the compressed or */
/* uncompressed cache*/
$cache->isPage = true;
if ($cache->Valid()) {
echo $cache->content;
die;
}
$cache->capture();
}
并且工作正常。现在我在网站的标题中添加了一个链接“登录”。当人们点击它时,它会将人重定向到他/她提供信用的子页面,设置会话参数(在调用 session_start 之前):
$_SESSION['theUser'] = $userId;
header( "refresh:1;url=http://mysite.com");
并且人员被重定向到 mysite.com。但问题是他/她看到该站点是从缓存中获取的。所以在右上角再次出现“登录”,但我设置了当设置 $_SESSION['theUser'] 时它应该显示它并提供一个注销链接。但它不显示,因为它返回给用户未登录的网站版本。
如何解决这个问题?