codeigniter get_cookie不会返回任何内容

时间:2014-01-02 23:42:59

标签: php codeigniter cookies

我在codeigniter中设置了一个cookie。用Firebug检查,我看到它已经设置好了。我使用以下数组来设置它(在localhost上)

$data['name'] = 'email';
$data['value'] = $guid;
$data['expire'] = (30*24*60*60);    
$data['secure'] = TRUE;
$data['domain'] = ".niazer.com";
set_cookie($data);

然后我使用了所有可能的功能来获取cookie,但我没有成功。 像往常一样,我用过这个:

echo get_cookie("email"); // returned nothing

我把它更改为:

 echo get_cookie("email", false); // returned nothing

然后我使用了输入类:

echo $this->input->cookie('email'); // returned nothing.

在萤火虫中,它会显示我的cookie:niazer_email

因此我为所有上述行添加了'niazer'的前缀,但仍然不成功。有人知道为什么吗?值得一提的是,我还使用了print_r而不是echo(),但仍未返回任何内容。

3 个答案:

答案 0 :(得分:0)

您需要考虑默认前缀(即网站名称),或清除此内容。

例如,添加以下行:

$data['prefix'] = '';

所以:

$data['name'] = 'email';
$data['value'] = $guid;
$data['expire'] = (30*24*60*60);    
$data['secure'] = TRUE;
$data['domain'] = ".niazer.com";
$data['prefix'] = '';
set_cookie($data);

答案 1 :(得分:0)

阅读this。您可以像这样设置cookie

$cookie = array(
                    'name'   => 'my_cookie',
                    'value'  => '1200',
                    'expire' => '2592000', //30 days = 2592000 seconds
                    'secure' => TRUE
                );

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

以后可以像这样得到它

echo $this->input->cookie('name'); //will echo 'my_cookie'
echo $this->input->cookie('value'); //will echo '1200'

答案 2 :(得分:0)

上述答案都没有解决我的问题。但我得到了它的工作。怎么样?

由于我在本地主机中,因此设置$cookie['path'] = "/"然后设置$cookie['SECURE'] = false,这使我的Cookie正常工作。