用户在codeigniter中成功登录时如何返回用户ID

时间:2011-11-03 02:58:43

标签: codeigniter

这里是登录表单的控制器,在登录过程之后用户可以将帖子添加到数据库,所以我需要收集一些数据作为当前登录用户的用户名& {user table}

中此用户的ID
<?php

class login extends CI_Controller{
function index()
{
    $this->load->view('login_form');
}
function proccess()
{
    $this->load->model('membership_model');
    $query = $this->membership_model->validate();

    if($query) // if the user's credentials validated ..
    {
        $data = array(
            'username_usr' => $this->input->post('username'),
            'is_logged_in' => true
        );
        $this->session->set_userdata($data);

        redirect('view=dogo&do=new_post');
    }
    else 
    {
        $this->index();
    }
}

function signup()
{
    //signup proccess
}
}

,这是登录过程的模型

<?php
class Membership_model extends CI_Model{
function validate()
{
    $this->db->where('username_usr', $this->input->post('username'));
    $this->db->where('password_usr', md5($this->input->post('password')));
    $query = $this->db->get('hs_users_usr');

    if($query->num_rows == 1)
    {
        return true;
    }
}
}

我可以返回已登录用户的用户名,我还需要返回此用户的ID

1 个答案:

答案 0 :(得分:1)

如果查询成功,您可以返回该查询并从中提取用户ID:

控制器

<?php

class login extends CI_Controller{
function index()
{
    $this->load->view('login_form');
}
function proccess()
{
    $this->load->model('membership_model');
    $query = $this->membership_model->validate();

    if($query !== FALSE) // if the user's credentials validated ..
    {
        $user_data = $query->row();

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

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

        redirect('view=dogo&do=new_post');
    }
    else 
    {
        $this->index();
    }
}

function signup()
{
    //signup proccess
}
}

模型

<?php
class Membership_model extends CI_Model{
function validate()
{
    $this->db->where('username_usr', $this->input->post('username'));
    $this->db->where('password_usr', md5($this->input->post('password')));
    $query = $this->db->get('hs_users_usr');

    if($query->num_rows == 1)
    {
        return $query;
    }
    else
    {
        return FALSE;
    }
}
}