CI会话登录

时间:2019-01-21 05:41:28

标签: codeigniter

我想使用会话登录到管理页面,但会话似乎无法正常工作,我已经使用codeigniter将会话包含在autoload.php中。

这是代码

$this->load->library('form_validation');
    $this->form_validation->set_rules('username','Username','required');
    $this->form_validation->set_rules('password','Password','required');

    if($this->form_validation->run()){
        //variables
        $username = $this->input->post('username');
        $password = md5($this->input->post('password'));
        //model function
        $this->load->model('main_model');
        if($this->main_model->can_login($username,$password)){
            $session_data = array(
                `username` => $username
            );
            $this->session->set_userdata($session_data);
            redirect(base_url() . 'home/admin');
        }
        else{
            $this->session->set_flashdata('error','Invalid Username and Password');
            redirect(base_url() . 'home/index');
        }
    }
    else{
        $this->index();
    }

2 个答案:

答案 0 :(得分:0)

您没有为要保存和检索的会话值指定名称。

这样做。

$session_data = array(
  'username' => $username
);
$this->session->set_userdata('values', $session_data);

获取会话值

$this->session->userdata['values']['username']

答案 1 :(得分:0)

  1. 将`更改为'
  2. 添加'logged_in' => TRUE(如果是Loggin会话)
  3. 删除删除values中的set_userdata

代码

$session_data = array(
    'username' => $username, #Change
    'logged_in' => TRUE #add
 );

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

访问数据

$this->session->userdata('username');

仅供参考

  

$this->session->set_userdata('key', $value);用于添加单个会话