到目前为止,我一直在使用Codeigniter中的会话。但是现在会话有很多数据。我喜欢使用cookies,但它对我不起作用。
$this->input->set_cookie('users_new',$users_new);
var_dump($this->input->cookie('users_new'));
有了这个,我试图获取数据。但它是空的。变量$users_new
填充了数组,因此它不能为空。当我尝试这个简单的例子时,cookie也是空的。
$cookie = array(
'name' => 'some_value',
'value' => 'The Value'
);
set_cookie($cookie);
var_dump(get_cookie('some_value'));
die();
怎么了?
感谢您的帮助!!
答案 0 :(得分:1)
Cookie由浏览器发送,因此您必须等待用户重新加载页面。
所以基本过程是:
get_cookie
编辑:
setcookie
以这种方式使用,它不适用于数组
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600); /* expire dans 1 heure */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
所以你应该这样做:
foreach ($cookie as $key => $val) {
setcookie($key, $val);
}
答案 1 :(得分:0)
示例代码:
$cookie = array(
'name' => 'users_new',
'value' => serialize($users_new),
'expire' => '86500'
);
$this->input->set_cookie($cookie);
如果只使用输入类,则无需加载cookie帮助程序。没问题,我知道,只是为了避免无用的代码行:)
答案 2 :(得分:0)
Cookie无法保存数组,只能保留纯文本。 @RageZ对for循环有一个很好的线索,它会设置许多cookie(与数组中的vars一样多)。 @Damien建议“序列化”,另一个选择是将jSon数组转换为带有原生php函数的str“json_encode()”