我在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()
,但仍未返回任何内容。
答案 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正常工作。