浏览器关闭时Cookie会自动销毁

时间:2012-05-17 11:56:07

标签: php codeigniter setcookie

我正在使用codeigniter并且在我的库文件中我存储的cookie在浏览器打开时工作正常,但是当我关闭浏览器时,代码中的任何内容都出错了吗?

        $this->CI =& get_instance();
        $this->CI->load->helper('cookie');
        $expire = time()+(60*60*24*30);
        $cookie = array(
                       'name'   => 'username',
                       'value'  => $users['username'],
                       'expire' => $expire
                   );
        $this->CI->input->set_cookie($cookie);
        $cookie = array(
                       'name'   => 'password',
                       'value'  => $users['password'],
                       'expire' => $expire
                   );
        $this->CI->input->set_cookie($cookie);

1 个答案:

答案 0 :(得分:4)

问题是您要发送的到期时间......这来自help page here

  

到期时间以秒为单位,将被添加到当前时间。不要包括时间,而是仅包括您希望cookie有效的秒数。如果到期时间设置为零,那么只有浏览器打开时,cookie才会持续。

所以将代码更改为:

$expire = (60*60*24*30);

将Cookie设置为从现在起30天后过期

(尽管设置它应该可能有效 - 但是到期时间会提前几年......帮助文档也会显示给定的字符串到期日 - 也许这就是问题所在)