更新cookie的最佳方式?

时间:2013-04-10 19:19:09

标签: php class cookies

我正在编写一个类来控制我正在处理的自定义CMS如何处理cookie,我很好奇在创建cookie后更新cookie的最佳方法。下面我粘贴了我正在使用的一个函数,我正在使用它来更新cookie,但它似乎没有正常工作。我遇到的问题是,即使此函数返回“true”,cookie似乎也没有改变。

    function updateCookie($data){
            $cookieArray = $this->getCookie();
            array_push($cookieArray,$data);
            //print_r($cookieArray);
            $json_string = json_encode($cookieArray,true);
            if(setcookie(_COOKIENAME, $this->encodeString($json_string,"S33D"))){
                return true;
            }
            else return false;
        }

建议或更正会有所帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

文档中可能有所帮助的一些提示:

  

如果在调用此函数之前存在输出,则setcookie()将失败   并返回FALSE。如果setcookie()成功运行,它将返回   真正。这并不表示用户是否接受了cookie。

...

  

请注意,cookie的值部分将自动生效   你发送cookie时urlencoded,当它被收到时,它就是   自动解码并以与其相同的名称分配给变量   cookie名称。如果您不想这样,可以使用setrawcookie()   相反,如果你使用PHP 5。

http://php.net/manual/en/function.setcookie.php

还有一些knitpicking:setcookie返回一个布尔值,所以不需要进行检查。只是做:

return setcookie( ... );