php - 重启浏览器后 Cookie 被删除

标签 php codeigniter cookies setcookie

重新启动浏览器后,我在 codeigniter 中设置的 cookie 将被删除。我正在设置一个 cookie,如下所示:

$test_cookie = array(
                    'name'=>'test',
                    'value'=> 'test',
                    'expire'=> time() + 60*60*24*14
                );

$this->input->set_cookie($test_cookie);  

print_r($test_cookie) 返回:

Array ( [name] => test [value] => test [expire] => 1309943188 ) 

现在我可以打印 cookie 以确保 cookie 已设置:

$test_cookie= $this->input->cookie('test');
echo "<b> Cookie value: </b>". $test_cookie;

cookie 正确打印值。

但是,如果我重新启动浏览器,我将不再获得 cookie 值。我尝试过多种浏览器。使用var_dump,我得到:bool(false) 为什么浏览器重新启动时 cookie 会被删除?

谢谢。

最佳答案

CodeIgniter 文档表示 expires 值已添加到当前时间。因此,您的情况下的 expires 值实际上是 time() + time() + 60*60*24*14。这可能超出 32 位整数限制并变成负值。这反过来会产生一个临时 cookie,该 cookie 在关闭浏览器时会被删除。

$test_cookie = array(
  'name'=>'test',
  'value'=> 'test',
  'expire'=> 60*60*24*14
);

应该可以工作。我想。

关于php - 重启浏览器后 Cookie 被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6437632/

相关文章:

java - 使用 JSESSIONID cookie 的 servlet 中的 session 处理未获取 session

javascript - session 关闭后 Cookie 未被删除

php 脚本不会在浏览器中执行

php - 将单个或多个 URI 段传递给函数(代码点火器)

java - 当我的响应类型是 ModelAndView 时,如何向客户端发送 cookie?

Codeigniter 不记录

在 codeigniter 中的模型内加载模型时出现 PHP "out of memory"错误

php - MySQL 模组与 PHP 模组

php - 如何在 Laravel 5 中加载外部 PHP 库(具有多个文件夹)?

php - MySQL 中固定数量字符串的最佳实践?