PHP Cookies无法正常工作


PHP Cookies not working properly

所以我的网站上有一些CSS3的特效,但我试图给观众一个禁用这些特效的选项。所以我采用了PHP Cookie方法,但它根本不起作用。

如果没有任何cookie,我会看到"单击此处启用特效",即使它们已经启用。直接转到禁用页面也不会关闭它们。

这是我的代码中的一些漏洞。

检查是否设置了cookie:

<?php
if(!$_COOKIE['nofancy']){ 
?>
<link rel="stylesheet" type="text/css" href="http://pattersoncode.ca/incls/nofancy.css" media="screen" />
<?php
}
?>

关闭特效:

<p>You have successfully turned off all special effects used in this website. This effect will last 48 hours after which you will need to disable them again. You will be redirected to the homepage in 5 seconds.</p>
<?php
$value = "nofancy";
setcookie("nofancy",$value, time()+3600*48);
?>
<script type='text/javascript'>
setTimeout(function () {
   window.location.href= 'http://www.pattersoncode.ca';
},5000); // 5 seconds
</script>

重新打开特效:

<p>Special effects have been enabled again. This effect will be permanent unless disabled again. You will be redirected to the homepage in 5 seconds.</p>
<?php
setcookie ("nofancy", "", time() - 3600);
?>
<script type='text/javascript'>
setTimeout(function () {
   window.location.href= 'http://www.pattersoncode.ca'; 
},5000); // 5 seconds
</script>

禁用/启用按钮:

<?php
if (!isset($_COOKIE["nofancy"]))
{
?>
 <a href="?a=fancyon"> Turn special effects back on </a> 
<?php
} else {
?>
 <a href="?a=nofancy"> Remove all effects </a> 
<?php
}
?>

有谁能帮我吗?被难住了。。

我建议您设置CSS,以便所有启用花哨内容的选择器都从一个额外的类开始,如下所示:

/* regular CSS - just to demonstrate the normal selectors that have
   nothing to do with fancy CSS stuff */
#foo {
    border: 1px solid hotpink;
    width: 300px;
    height: 200px;
}
/* fancy stuff added here */
.fancy-css #foo {
    box-shadow: 5px 5px 10px lime;
    border-radius: 4px;
}

通过这种方式,您可以通过控制HTML输出来简单地启用/禁用样式。样式处于活动状态?将类放在body标记上。样式未激活?不要把它放在那里。

通过这种方式,您可以通过相应地修改HTML输出来控制服务器上的样式。您还可以通过简单地将类移除/添加到body标记来切换花哨的东西,而无需重新加载。