0

您如何在 CodeIgniter 中登录应用程序的多用户(管理员、用户)中维护会话(设置会话 ID、获取会话 ID)?

我正在使用这个if($this->session->userdata('logged_in') == '')。但这不起作用。

谢谢

4

5 回答 5

3

尝试这个

 if ($this->session->userdata('logged_in')!=FALSE) {

        print_r($this->session->all_userdata());
    }

所以你可以找到当前的用户数据

于 2013-03-19T06:05:08.047 回答
0

如果您之前已经定义了会话,

$this->session->set_userdata('logged_in', 'value');

然后检查会话是否设置正确,

if(isset($this->session->userdata('logged_in')) {

      if($this->session->userdata('logged_in') == '') {
           // Your Code
      }
}

如果上面isset()返回false,那么您的会话设置不正确。检查那个。

于 2013-03-19T04:54:03.780 回答
0

请加载会话库

根据您是否自动加载会话库,我们需要包括:

    $this->load->library('session');

然后你应该能够使用:

    $this->session->set_userdata('logged_in', 'some_value');

并检查是否设置了会话,只需使用

   if($this->session->userdata('logged_in')){
      //code for logged in 
   }

如果还是不行,请尝试清除浏览器缓存

我希望它会有所帮助!

于 2013-03-19T05:27:05.983 回答
0

首先,您必须检查您尝试检索的会话项目是否存在,然后将其与您想要的值进行比较。尝试这个:

if( $this->session->userdata("logged_in") !== FALSE ){
    if( $this->session->userdata("logged_in") == "admin" ){
        //logged in as admin
    }elseif( $this->session->userdata("logged_in") == "user" ){
        //logged in as user
    }
}

还有一件事,

parent::__constructor();

line 应该始终是构造函数中的第一行代码,否则,您稍后会在代码中遇到很多错误

于 2013-07-15T11:17:33.717 回答
0

首先检查天气你已经加载了会话库..

如果您验证空白值那么您错了,请使用此

// to set the session data
$this->session->set_userdata('name', 'value');  // note u can also pass array

if(isset($this->session->userdata('name'))){

   //to read session data
   $this->session->userdata('name'); // note u can also pass array

   //to unset or delete
   $this->session->unset_userdata('name');

}

于 2013-03-19T04:48:55.290 回答