2015-06-04 82 views
0

我在codeigniter中使用會話,它工作正常,但我無法更改該值。 我用這個函數:無法更改codeigniter中的會話值

$this->session->set_userdata('check', 0); 

我必須在「檢查」的值更改爲0。

爲什麼不能?

我的問題是,爲什麼我不能更改值會話?我這樣設置值首次:

$sess_array = array(
     'userid' => $row->userid, 
     'pseudo' => $row->pseudo, 
     'check' => $row->check 
); 
$this->session->set_userdata('logged_in', $sess_array); 
+0

什麼問題它似乎不清楚 –

+0

你是如何設置的價值在第一次? – Maraboc

+0

該代碼必須更改會話值。如何知道它不起作用? –

回答

1
$sess_array = array(
    'userid' => $row->userid, 
    'pseudo' => $row->pseudo, 
    'check' => $row->check 
); 
// you have set session key 'logged_in' 
$this->session->set_userdata('logged_in', $sess_array); 

// Get session value from existing key 
$arrSession = $this->session->userdata('logged_in'); 
$arrSession['check'] = 0; 
$this->session->set_userdata('logged_in', $arrSession); 

您需要更新如上所示的值。

如果您希望按照指示設置「檢查」值。你需要做如下

$sess_array = array(
    'userid' => $row->userid, 
    'pseudo' => $row->pseudo, 
    'check' => $row->check 
); 
// Note that no key specified. 
$this->session->set_userdata($sess_array); 
// Now i think you can set check value. Give it a try. Let me know which works. 
$this->session->set_userdata('check',0); 
+0

是的!非常感謝 ! – mdck

+0

@jorisreix Gr8。快樂它可以幫助你。 :) – jagad89

1

你可以試試設置的值,然後分配一個新的值給它,像下面的代碼:

$check= $this->session->userdata('check'); 

if(!empty($check)){ 
    $this->session->unset_userdata('check'); 
    $this->session->set_userdata('check', 0); 
} 
echo $this->session->userdata('check'); 

讓我知道如果這樣的作品!