2011-10-03 81 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');