可以';t在codeigniter中的构造内部设置cookie


Can't set cookie inside construct in codeigniter

如果null,我试图设置一个cookie,但我无法使其工作:

public function __construct()
{
    parent::__construct();
    if ($this->input->cookie('ff', TRUE) == FALSE)
    {
        $this->input->set_cookie('ff', 'on', 86500);
        dump($this->input->cookie('ff', TRUE));
    }
}

我做错了什么?

编辑:dump()它只是一个自定义调试函数。

您的set_cookie调用可能失败的几个原因:

1) 当调用set_cookie时,您已经向浏览器输出了一些内容,在这种情况下,您可能会收到一条错误/通知,内容为"Headers haven sended"。要解决这个问题,只需确保在向浏览器发送任何内容之前发生set_cookie调用。

2) 如果您正在进行本地开发和测试,"localhost"不被视为有效域,因此不会为其保存cookie。解决方法是在主机文件中添加一个条目,例如:

localhost.dev    127.0.0.1

然后使用该域而不是"localhost"进行测试。