PHP Cookie不工作

PHP Cookie不工作,php,cookies,Php,Cookies,我有以下代码: if ($_COOKIE['lightbox'] != "1") { setcookie("lightbox", "1", time()+3600); echo(" <script type='text/javascript'> if (window.addEventListener) { // Mozilla, Netscape, Firefox window.addEv

我有以下代码:

    if ($_COOKIE['lightbox'] != "1") {
        setcookie("lightbox", "1", time()+3600);
        echo("
        <script type='text/javascript'>
        if (window.addEventListener) { // Mozilla, Netscape, Firefox
            window.addEventListener('load', WindowLoad2, false);
        } else if (window.attachEvent) { // IE
            window.attachEvent('onload', WindowLoad2);
        }

        function WindowLoad2(event) {
            displayLightbox();
        }
        </script>
       ");

    }
if($\u COOKIE['lightbox']!=“1”){
setcookie(“lightbox”,“1”,time()+3600);
回声(“
if(window.addEventListener){//Mozilla、Netscape、Firefox
addEventListener('load',WindowLoad2,false);
}else如果(window.attachEvent){//IE
window.attachEvent('onload',WindowLoad2);
}
函数WindowLoad2(事件){
displayLightbox();
}
");
}

我基本上是想通过使用cookie为每个用户只运行一次displayLightbox()。出于某种原因,我在网站上的每个页面都会得到它,除了在页面上按CTRL+F5键时。使用ctrl+f5后,我再也看不到灯箱了。有什么想法吗?

这似乎是第一次当您的cookie未设置时,事件被添加到您的窗口(除非您执行CTRL+F5),因此在每次页面加载时,它都会调用
displayLightbox()
。请尝试在IF的其他部分取消事件

或者,尝试将JS代码更改为:

if ($_COOKIE['lightbox'] != "1") {
    setcookie("lightbox", "1", time()+3600);
    echo("
        <script type='text/javascript'>
        displayLightbox();
        </script>
    ");
}
if($\u COOKIE['lightbox']!=“1”){
setcookie(“lightbox”,“1”,time()+3600);
回声(“
displayLightbox();
");
}

希望这有帮助。

这段代码是否可能在frame/iframe中运行?或者您可以使用ajax获得此代码?因为这段代码似乎是缓存的。@Karolis我在一个自动进行代码优化的系统中实现了这一点,但不确定这部分代码的具体内容和方式对我来说是不可用的。是否有任何方法可以禁用该部分代码的缓存或以某种方式绕过它?如果不了解您的系统,很难说出一些事情。但您可以尝试添加无缓存头:或者您也可以在JavaScript中测试cookie的存在性。@Karolis-如何使用JS测试cookie的存在性?有一些示例:@或W:您的意思是在代码中取消事件后或在尝试使用我的代码后得到相同的结果?如果正在设置cookie,是否可以使用浏览器设置或FF Web Developer插件手动检查?或者你可以做一个
打印($\u COOKIE)