无法从codeigniter中的cookie获取关联数组变量

无法从codeigniter中的cookie获取关联数组变量

问题描述:

i seem to be stuck at this problem for quiet a few time, basically i have used cookie in codeigniter, and passed an array with different names to different functions, the code to set the cookie is

$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); 

now i just dont know how to get the variables inside the array i.e what will be the syntax to get client_block_ID??

我似乎被困在这个问题上安静了几次,基本上我在codeigniter中使用了cookie,并且通过了 对不同函数使用不同名称的数组,设置cookie的代码是 p>

  $ 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)  ;  
  code>  pre> 
 
 

现在我只是不知道如何获取数组中的变量,即获取client_block_ID的语法是什么? p> div >

Now your cookie array will look like this.........

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

So to get your client_block_ID from your $cookie array you have to loop through that array like below.

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

use

$this->input->cookie()

Lets you fetch a cookie. The first parameter will contain the name of the cookie you are looking for (including any prefixes)

The function returns FALSE (boolean) if the item you are attempting to retrieve does not exist.

try this,

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

You did not expect array as value; I did and I see:

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