将会话设置为使用编码器点火器


setting sessions to use codeigniter

好的,我正在尝试构建一个用户配置文件,其中视图中显示first_name,密码和用户名。

由于密码和用户名是在模型中设置的,因此很容易在控制器中设置会话用户数据,然后将其显示在视图中。

我怎样才能在不将其放入验证函数的情况下设置会话以获取first_name?

谢谢,我是codeigniter和MVC的新手,感谢您的任何帮助。

function validate()
{
    $this->db->where('username', $this->input->post('username'));
    $this->db->where('password', md5($this->input->post('password')));
    $query = $this->db->get('membership');
    if($query->num_rows() == 1)
    {
        return true;
    }
}

控制器

function validate_credentials()
{
    $this->load->model('member_model');
    $query = $this->member_model->validate();
    if ($query) // if user cred validate the user session start
    {
        $data = array(
            'username' => $this->input->post('username'),
            'password' => $this->input->post('password'),
            'is_logged_in' => true
        );
        $this->session->set_userdata($data);
        redirect('members/members_area');
    } else {
        $this->index();
        echo 'Incorrect Password or Username';
    }
}

视图

<h2>Welcome Back, <?php echo $this->session->userdata('username'); ?>!</h2>
<h2>your password, <?php echo $this->session->userdata('password'); ?>!</h2>

验证函数

function validate()
{
$this->db->where('username', $this->input->post('username'));
$this->db->where('password', md5($this->input->post('password')));
$query = $this->db->get('membership');
if($query->num_rows() == 1)
{
    return $query->row();
}
else
{
return false;
}
}

在控制器中

function validate_credentials()
{
$this->load->model('member_model');
$query = $this->member_model->validate();
if ($query) // if user cred validate the user session start
{
    $data = array(
        'username' => $query->username,
        'password' => $query->password,
        'first_name'=>$query->firstname
        'is_logged_in' => true
    );
    $this->session->set_userdata($data);
    redirect('members/members_area');
 } else {
    $this->index();
    echo 'Incorrect Password or Username';
}
}