繁体   English   中英

更新Cookie的最佳方法?

[英]Best way to update a cookie?

我正在编写一个类来控制正在处理的自定义CMS的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;
        }

建议或更正会有所帮助。

谢谢

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

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

...

请注意,当您发送cookie时,cookie的值部分将自动进行urlencode,并且在接收到该cookie时,它会被自动解码并通过与cookie名称相同的名称分配给变量。 如果您不想这样做,则可以使用setrawcookie()来代替(如果您使用的是PHP 5)。

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

还有一些编织:setcookie返回一个布尔值,因此无需执行检查。 做就是了:

return setcookie( ... );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM