2011-10-03 75 views
3

我在會話存儲一些數據如下:笨修改會話數據

$session_data = array("uid" => "test user", "loged_in" => true); 

$this->session->set_userdata($session_data); 

要修改「UID」我試圖

$uid = array("uid" => "New user"); 
$this->session->set_userdata($uid); 

它沒有工作,所以我試圖

$this->session->set_userdata("uid","New user"); 

它也沒有工作。不能在谷歌上找到任何有用的東西。請幫助我如何更改會話中的值?

執行以下操作:

+0

你的代碼是正確的(除了幾個錯別字)。我猜在別的地方還有一個問題。你使用數據庫來存儲會話詳細信息?調用'$ this-> output-> enable_profiler(TRUE)時會話數據的輸出是什麼;'? – swatkins

+0

什麼是所有的錯別字? 'logged_in'(2克)還有'數組'(不是陣列) – Jakub

回答

8

迪你加載你的會話庫嗎? $這個 - >負載>庫( '會議');這可能是一個愚蠢的問題,但它並沒有傷害問。

設置加密密鑰怎麼樣?我想你會看到一個錯誤信息爲http://ellislab.com/codeigniter/user_guide/libraries/encryption.html

$session_data = array('uid' => 'test user', 'logged_in' => TRUE); 
$this->session->set_userdata($session_data); 

// modify session 
$this->session->set_userdata('uid', 'New user'); 
2
從您的所有拼寫錯誤(當然那些編程事),你可能想看看如果你只是迷惑自己,並錯誤地typo'ing數組/值/鍵名

旁白:

echo "<pre>"; 
print_r($this->session->all_userdata()); 
echo "</pre>"; 

,並這樣做,你會更近了一步知道什麼錯字的或者你遇到了問題,因爲這將顯示您的會話後陣:

Array 
(
    [session_id] => 4a5a5dca22728fb0a84364eeb405b601 
    [ip_address] => 127.0.0.1 
    [user_agent] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; 
    [last_activity] => 1303142623 
    [uid]  => 2 
    etc... 
) 
1
///set session data 
$data = array('Id' => 'test Id', 'is_logged_in' => TRUE); 
$this->session->set_userdata($data); 

// modify session data 
$this->session->set_userdata('Id', 'New test Id');