在codeigniter中设置一个名称和多个值的cookie

时间:2014-01-19 17:06:54

标签: php codeigniter cookies

每当用户点击“添加到我的收藏夹”时,我想在Codeigniter中设置一个cookie。但我很困惑。因为我必须同时添加一个带有一个名字的项目。您知道这是不可能的,CI会覆盖以前的值。看看这个:

$this->input->set_cookie(array("name"=>'fav', 'value'=>2500, 'expire'=>100000));    
        $this->input->set_cookie(array("name"=>'fav', 'value'=>3500, 'expire'=>100000));    
        $this->input->set_cookie(array("name"=>'fav', 'value'=>4500, 'expire'=>100000));

当我尝试使用此函数获取fav值时:

printer($this->input->cookie("fav"));

我得到了这个结果:

4500

当用户将项目添加到他们喜欢的列表时,我应该如何为用户设置cookie,以便在检索它们时我知道要检索什么。我无法使用数据库,因为此实现适用于非注册成员的用户。

2 个答案:

答案 0 :(得分:0)

我认为您应该使用 print_r()而不是 printer()。 更重要的是,你应该使用:     $这 - >输入 - > get_cookie( “最爱”); 有关详细信息,请查看此处:Cookie helper

答案 1 :(得分:0)

您可以使用$ this-> session-> set_userdata来存储值。

$fav = $this->session->userdata("my_favs");// get existing list
$fav[] = $new_fav; // append new items to list
$this->session->set_userdata(array("my_favs"=>$fav)); // update session with existing one.

打印所有项目

 $fav = $this->session->userdata("my_favs")
foreach($fav as $fitems)
  echo $fitems."<br/>";