将用户ID添加到会话数据(codeigniter)

时间:2012-01-23 02:36:35

标签: mysql codeigniter

使用CodeIgniter我正在尝试将数据库中的用户ID添加到会话数据中。

我看过这个question并且它对我不起作用

控制器代码:

function validate_credentials()
{       
    $this->load->model('users_model');
    $query = $this->users_model->validate();

    // if the users credentials validated...

    if($query) 
    {
        $user_id = $this->users_model->get_userID($this->input->post('email'));

        /* 

        I dont need to worry about insecure code because all incoming data 
        is filtered (set in config.php)

        */

        $data = array(
            'username' => $this->input->post('username'), 
            'is_logged_in' => true,
            'user_id' => $user_id
        );

        $this->session->set_userdata($data);

        redirect('site/members');
    }

    else 

    {
        // incorrect username or password
        $this->index(); 
    }
}   

模型代码:(该列在db的users表中称为“userID”)

function get_userID($email){

    $this->db->where('email',$email);
    $query = $this->db->get('users');       

    foreach ($query->result() as $row)
    {
        $user_id = $row->userID;
    }

    return $user_id;

}

当我在视图中调用数组时,不会显示用户ID。

<?php $this->session->userdata('user_id');?>

3 个答案:

答案 0 :(得分:2)

如果您只想查看userID,请尝试..

<?php echo $this->session->userdata('user_id');?>

答案 1 :(得分:0)

$ this变量在视图中与在控制器中不同。如果你想以这种方式引用会话,你必须得到这样的$ CI实例:

$CI = &get_instance();
$CI->session->userdata('user_id');

答案 2 :(得分:0)

尝试回应您的查询,它总是有助于理解您的问题,如尝试回声 $user_id$data 有时由于小错误,你在查询中得不到值,echo会显示结果