我正在编写一个类来控制我正在处理的自定义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;
}
建议或更正会有所帮助。
谢谢
答案 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( ... );