我正在使用一个非常简单的样式表开关。它一直很好,但几天前我打开缓存模式,现在它只适用于登录用户。如果关闭缓存模式,它将再次对两个用户起作用。
基本上代码看起来像这样
在page.php标题中
<?php
if(isset($_COOKIE['style'])){
$style=$_COOKIE['style'];
} else {
$style='green';
}
?>
<link type="text/css" rel="stylesheet" href="/css/<?php echo $style ?>.css">
切换
<a href="http://www.mydomain.com/switch.php?style=blue">Blue</a>
在switch.php中
<?php setcookie('style', $_GET['style'], time()+31536000);
header('Location:'.$HTTP_SERVER_VARS['HTTP_REFERER']);
?>
我做了很多研究,但找不到正确的方法。如果可以的话请帮忙。谢谢
答案 0 :(得分:2)
嗯,我不明白为什么你不能像http://www.alistapart.com/articles/alternate/那样只使用客户端风格的切换器。还有其他方法可以完全实现客户端,但要求整个新页面切换样式似乎有点过分。
此外,缓存会创建一个静态页面来代替为每次点击动态创建一个新页面,因此缓存页面可能会被提供给任何未获得样式切换的人。
答案 1 :(得分:0)
根据我的理解/经验标准drupal缓存仅适用于未登录的用户。至少有一个模块允许经过身份验证的用户缓存,但它不在Core,authcache中: http://drupal.org/project/authcache
一篇解释druapl缓存技术的旧文章。还有一些很好的信息:http://n0tablog.wordpress.com/2007/11/19/drupal-caching/