2013-05-08 32 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