每当我尝试在我的会话的userdata列中检查一个值时,它认为它是空白的,当它实际上在序列化的ci_sessions表中时。
这里是未经序列化的数据库内容:
array (
'user_data' => '',
'edit' =>
array (
'image_id' => 'HF',
'session_id' => '783c15b057bcd9c19d3fd82f367ee55d',
),
)
这是我在视图中检查用户数据的方法(注意会话是自动加载的)
<?php if ($this->session->userdata('edit')) : ?>
enter code here
以下是我如何设置会话userdata:
$values = array(
'image_id' => implode(",",$uploaded_image_ids),
'session_id' => $this->session->userdata('session_id')
);
$this->session->set_userdata('edit', $values);
有人能看到问题吗? (整个控制器http://pastebin.com/aXeRn1VN) 还有我的config.php http://pastebin.com/A31nrC1b
答案 0 :(得分:2)
视图变量与CI中的其他变量分开。我认为(我仍然是一个CI新手),$ this-&gt;会话在Views中不可用。这个CI论坛帖子讨论了问题http://codeigniter.com/forums/viewthread/100587/#508098的几个可能的解决方案 - 一个是将会话中的'userdata'值传递给传递给视图的$ data数组 - 这似乎是最好的解决方案。 / p>
答案 1 :(得分:1)
你可以这样使用
<?php $edit = $this->session->userdata('edit'): if (!empty($edit)) : ?>