codeigniter 无法访问另一个控制器中的会话数据

Posted

技术标签:

【中文标题】codeigniter 无法访问另一个控制器中的会话数据【英文标题】:codeigniter can't access session data in another controller 【发布时间】:2018-07-21 17:21:31 【问题描述】:

我想使用会话数据作为变量从数据库中获取数据。我认为这个函数是正确的,但它总是给出 null 作为结果。当我在视图中显示它时,它什么也得不到/null。谁能帮帮我?

我在 login 控制器中定义此代码:

$this->session->set_userdata('id_member', 'id_member');

控制器c_perawat中的函数DataProfil

public function DataProfil()
        $session_id = $this->session->userdata('id_member');
        $data['klinik']=$this->m_klinik->GetDataKlinik($session_id)->result();
        $data['sidebar']='member/perawat/sidebar';
        $data['content']='member/perawat/pr';
        $this->load->view('member/perawat/main',$data);

    

我的模型函数

public function GetDataKlinik($session_id)
        $klinik=$this->db->query("SELECT * FROM klinik where id_perawat='$session_id'");
        return $klinik;
    

【问题讨论】:

【参考方案1】:

首先确保你已经自动加载了application/config/autoload.php下的会话

$autoload['libraries'] = array('session');

在将其设置为session之前创建一个数组$session变量

$session_data = array('session_id' => $id); //在这里你可以添加任意数量的会话键和值。

注意:这里的$id 是您要设置会话的id

然后将$session_data设置为会话。

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

访问会话变量

$session_id = $this->session->userdata['session_data']['session_id'];

要取消设置会话变量,

$this->session->unset_userdata('session_data');

希望对你有所帮助。

【讨论】:

【参考方案2】:

你确定吗?

$this->session->set_userdata('id_member', 'id_member');

第二个参数必须是值,也许

$this->session->set_userdata('id_member', $id_member);

【讨论】:

sama-sama :) 。需要更彻底

以上是关于codeigniter 无法访问另一个控制器中的会话数据的主要内容,如果未能解决你的问题,请参考以下文章

无法访问codeigniter控制器中的uri段

Codeigniter控制器和路由

CodeIgniter 控制器无法访问

ajax成功函数中的codeigniter访问数据数组

CodeIgniter 404 未找到控制器

如何重定向到codeigniter中的另一个函数?