1

我似乎在这个问题上安静了一段时间,基本上我在codeigniter中使用了cookie,并将一个具有不同名称的数组传递给不同的函数,设置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 的语法是什么?

4

3 回答 3

3

现在您的 cookie 数组将如下所示......

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

因此,要从您的 $cookie 数组中获取您的 client_block_ID,您必须像下面那样遍历该数组。

foreach($cookie as $c)
{
    echo $c['name'];
    foreach($c['value'] as $v)
    {
        echo $v['client_block_ID'];
    }
}
于 2013-05-08T07:17:07.390 回答
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
于 2015-07-03T00:07:21.687 回答
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
}
于 2013-05-08T07:20:51.260 回答