1

我的代码中包含以下部分。该块实际上是一个调试块,用于在使脚本生效之前进行检查。

if ($_COOKIE['visits'] = '' ) 
{
    $dbgmsg="No cookie found";
    $visits=1;  
    setcookie('visits',$visits,time() + (86400*30)); // 86400 = 1 day 900=15mins    
}
else 
{

    $visits=$_COOKIE['visits'];
    //$dbgmsg="Cookie found. Value is".$_COOKIE['visits'];
    $dbgmsg='<p>Cookie found. Value is'.$_COOKIE["visits"].'</p>';
    $visits++;
    setcookie('visits',$visits,time() + (86400*30));
}

当脚本运行时,输出为:Cookie found. Value is

这意味着不显示 cookie 的值。在 Chrome 中检查 cookie 值表明存在 cookie 'visits',值为 1。但代码似乎进入了 else 块。但是检索到的值为null?

我希望根据访问增加 cookie 的值。

4

1 回答 1

8

您使用的是赋值=运算符而不是比较运算符==。那将永远是正确的,这不是您想要的。

改变

if ($_COOKIE['visits'] = '' ) 

if ($_COOKIE['visits'] == '' ) 

甚至更好,使用empty()

if (empty($_COOKIE['visits'])) 
于 2013-06-05T03:03:15.880 回答