2013-05-08 71 views
1

我似乎在这个问题上陷入了沉寂几次,基本上我已经在codeigniter中使用了cookie,并将具有不同名称的数组传递给了不同的函数,代码设置为cookie是不能从codeigniter中的cookie中获取关联数组变量

$data = array (
      'client_block_ID' => $client_block_ID, 
      'client_unit_ID' => $client_unit_ID, 
      'blockUnits'  => $blockUnits 
     ); 

      $cookieName ='tab'.$counter; 

      $cookie = array(
       'name' => $cookieName, 
       'value' => $data, 
       'expire' => '86500', 
     ); 

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

现在我只是不知道如何获得数组内的变量,即将获得client_block_ID的语法是什么?现在

+0

检查答案,如果它可以帮助你接受它作为回答 – 2013-05-08 07:20:27

+0

$饼干[“值”] [“client_block_ID”];当cookie被正确提取时应该足够了。 – Ihsan 2013-05-08 07:37:36

回答

3

您的Cookie阵列看起来像这样.........

$cookie = array(
      'name' => $cookieName, 
      'value' => array(
           'client_block_ID' => $client_block_ID, 
           'client_unit_ID' => $client_unit_ID, 
           'blockUnits'  => $blockUnits 
         ); 
      'expire' => '86500', 
      ); 

所以从您的$饼干阵列得到您的client_block_ID你通过该数组像下面有循环。

foreach($cookie as $c) 
{ 
    echo $c['name']; 
    foreach($c['value'] as $v) 
    { 
     echo $v['client_block_ID']; 
    } 
} 
+0

有没有办法检查我的cookie是否设置?/ – 2013-05-08 07:31:35

+0

@Venkat?你不需要循环。 echo $ cookie ['value'] ['client_block_ID'];在你的数组结构的情况下就足够了。 – Ihsan 2013-05-08 07:34:41

+0

@blogger你可以使用这个if检查你的cookie是否存在(空($ cookie){echo“NO cookie”} else {做你想做的事情} – 2013-05-08 07:38:33

0

使用

$this->input->cookie() 

让您获取一个cookie。第一个参数将包含您正在查找的cookie的名称(包括任何前缀)

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

试试这个,

$cookievalue= $this->input->cookie('value'); 
if($cookievalue){ 
    //cookie exists 
    foreach($cookievalue as $cookie){ 
    echo $cookie['client_block_ID']; 
    } 
}else{ 
    //cookie doesnot exists 
} 
+0

有没有办法检查cookie是否是? – 2013-05-08 07:32:00

+0

如果函数不存在,函数返回false ....检查我的更新 – bipen 2013-05-08 07:57:43

+0

这样看来我的cookie没有设置,也许是因为我使用的命名约定,但我尝试了一个类似的名字,但仍然没有!!! – 2013-05-08 08:10:36

1

没想到你数组值; 我做了,我看到:

A PHP Error was encountered 
Severity: Warning 
Message: setcookie() expects parameter 2 to be string, array given 
Filename: core/Input.php 
Line Number: 404