【问题标题】:How to properly get the Value of a Cookie in PHP? [closed]如何在 PHP 中正确获取 Cookie 的值? [关闭]
【发布时间】:2013-05-31 14:48:53
【问题描述】:

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

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 的值。

【问题讨论】:

    标签: php html cookies setcookie


    【解决方案1】:

    您使用的是赋值 = 运算符,而不是比较 == 运算符。这将永远是真实的,这不是你想要的。

    改变

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

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

    或者更好的是,使用empty()

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

    【讨论】:

    • 糟糕!不会再来了!谢谢。
    • 修剪一下怎么样? cookie 值中的空格可能会导致验证失败,所以if (empty(trim($_COOKIE['visits'])))
    • 不错的主意。虽然这不是用户提供的值(显然是篡改的),但它确实应该是必要的。
    • 不应该,但应该考虑所有方面。 $_COOKIE 和 $_SESSION 可以由用户在任何给定时间进行操作,因此采取额外的预防措施是明智的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2016-02-16
    相关资源
    最近更新 更多