Codeigniter 4 cookie问题无法设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeigniter 4 cookie问题无法设置相关的知识,希望对你有一定的参考价值。
这是我的控制器代码。我无法在Codeigniter 4中设置和获取Cookie。
helper('cookie');
$this->response->set_cookie('forgetpwd',$token, time() + (3600),"/",site_url());
print_r($this->request->get_cookie('forgetpwd'));
die();
从php.net-https://www.php.net/manual/en/function.setcookie.php
Cookie只有在下一次加载该cookie应该是可见的。测试cookie是否成功设置后,在Cookie之前的下一个加载页面上检查Cookie到期。过期时间是通过expires参数设置的。一个很好的方法通过简单地调用来调试cookie的存在print_r($ _ COOKIE);。
来自文档的AFAICT,set_cookie()
is a helper:
此帮助器函数为您提供了更友好的语法来设置浏览器cookie。 [...]此函数是Response :: setCookie()的别名。
这意味着您可以像这样使用它:
set_cookie()
如果要直接使用响应,则不需要帮助器。在这种情况下,方法名称为helper('cookie');
set_cookie('forgetpwd',$token, time() + (3600),"/",site_url());
。在这种情况下,您可以执行以下操作:
setCookie()
请勿使用setCookie()
,因为那样将不会设置cookie。让该方法返回,以便CI可以输出cookie和标头。
您不需要帮助程序,请不要加载它。
// No need for helper('cookie') if you are using response directly
$response->setCookie($name, $value, $expire, $domain, $path, $prefix, $secure, $httponly);
不会产生您应该使用的字符串。它包含协议,即die()
,您只需要使用“ example.com”。
您颠倒了[[domain和path自变量,并且正如其他人所说的那样,该呼叫是对site_url()
的]]https://example.com
参数可以是您想要的寿命(以秒为单位)。expire
setCookie()
方法将为您添加$this->response->setCookie('forgetpwd', $token, 3600, example.com);
。我不提供路径参数,因为您需要默认值'/'。以上是关于Codeigniter 4 cookie问题无法设置的主要内容,如果未能解决你的问题,请参考以下文章
在我的 CodeIgniter 助手中获取 cookie 值