codeigniter cookie到期问题

fly*_*sun 3 cookies codeigniter

我有一个cookie问题,我的cookie上的失效日期总是设置为会话结束,这不是我想要的.我做了一些风格,它建议将到期设置为时间()+ 60*60*24*30,我已经完成了.

 //Create basket cookie
            $cookie = array(
                'name'   => 'basket_id',
                'value'  => $basket_id,
                'expire' => time()+60*60*24*30,
                'domain' => 'domain',
                'path'   => '/',
                'prefix' => '',
            );
            set_cookie($cookie);
Run Code Online (Sandbox Code Playgroud)

我确实想知道它是否可以归结为Codeignter设置,但我的ci_session cookie有一个正常的到期日期.星期四,2011年6月9日10:39:02 GMT

这是我查看cookie时得到的:

 Name   basket_id
 Value  28
 Host   .host
 Path   /
 Secure No
 Expires    At End Of Session
Run Code Online (Sandbox Code Playgroud)

这是我传递给cookie的数组的一个例子.

Array ( [name] => basket_id [value] => 30 [expire] => 1310202067 [domain] => host [path] => / [prefix] => ) 
Run Code Online (Sandbox Code Playgroud)

sn0*_*n0r 7

您的失效日期设置不正确.您不必包含time(),因为您设置的实际上是time()的到期日期.

当您的过期值不正确时,它默认为0,而不是设置为会话的长度.

因此它应该是:

            $cookie = array(
            'name'   => 'basket_id',
            'value'  => $basket_id,
            'expire' => 86400*30,
            'domain' => 'domain',
            'path'   => '/',
            'prefix' => '',
        );
Run Code Online (Sandbox Code Playgroud)