尝试使用codeigniter创建一个类似2天的cookie -.-(我以前羞于问过这个问题......)
任何人都想解释一下这段代码有什么问题:
$websiteUrl = preg_replace("/^[\w]{2,6}:\/\/([\w\d\.\-]+).*$/","$1", base_url());
$this->load->helper('cookie');
$cookie = array(
'name' => 'rememberMe',
'value' => $this->encrypt->encode(serialize($serialize)),
'expire' => (time() + $this->config->item('remember_me')),
'domain' => '.'.$websiteUrl,
'path' => '/',
'prefix' => 'chv_',
'secure' => false,
);
set_cookie($cookie);
答案 0 :(得分:0)
$this->input->set_cookie($cookie)
($this
是CI实例)
确保$this->config->item('remember_me')
> 0
我多次使用CI并且我总是使用原生的setcookie()函数,因为我真的不需要任何框架来设置cookie(这是简单的操作)......但是根据使用CI实例和输入的文档CI->input->set_cookie()
应该做的工作。 记住NO FRAMEWORK是100%完美的工作...... 这是唯一的框架......您可以调试逐步的CI代码,看看会发生什么。
(来自评论)
答案 1 :(得分:0)
确保在运行set_cookie之前没有加载额外的空格,这阻止了cookie标头被发送到浏览器。我花了一个多小时来追踪这个问题,发现我在某个地方的一个结束标签的末尾有一个额外的空间。如果您打开E_WARNING,这应该会显示问题。