Cookie存在,但我无法在CodeIgniter中获取它们。为什么?

时间:2015-02-10 13:59:25

标签: php codeigniter cookies

Codeigniter:当用户登录时,我想保存包含电子邮件的cookie。

$cookie = array(
    'name'   => 'email',
    'value'  => $email,
    'expire' => time()+3600*24*30*30,
    //'domain' => '.racebooking.net',
    'path'   => '/',
    'secure' => TRUE
);
$this->input->set_cookie($cookie);

一旦这段代码运行,我在Firebug中查看我可以看到cookie已经正确设置。这就是我所看到的:

name     value                            domain                    raw size    path  expires                Security
email    fontanavideostudios@gmail.com    www.test.racebooking.net  36 B        /     07/09/2062 20:50:15    Secure

不幸的是,当我尝试按如下方式检索它时

$this->input->cookie('email', TRUE);

我什么都没得到。 cookie就在那里,但我无法在CI中获得它。知道为什么吗?该网站安装在www.test.racebooking.net(我在生产前用于测试的子域)

2 个答案:

答案 0 :(得分:0)

cookie('some_cookie');

如果您尝试检索的项目不存在,则该函数返回FALSE(布尔值)。

来源:https://www.codeigniter.com/user_guide/libraries/input.html

还有: https://www.codeigniter.com/user_guide/helpers/cookie_helper.html

答案 1 :(得分:0)

好的,(我想)我发现了问题!通过将.racebooking.net设置为域,而不是将其留空(并因此自动设置为www.test.racebooking.net)我修复了它。

$cookie = array(
    'name'   => 'email',
    'value'  => $email,
    'expire' => time()+3600*24*30*30,
    'domain' => '.racebooking.net',
    'path'   => '/',
    'secure' => TRUE
);
$this->input->set_cookie($cookie);

现在我可以检索cookie值了。 "为什么会发生这种情况" 问题仍然存在。