繁体   English   中英

我如何打印使用会话登录的用户的用户名

[英]how can i print the username of the user who login using session

这是我的用户模型

public function user_login($email, $password)
{
    $this->load->library('session');
    $this->db->where('email', $email);
    $this->db->where('password', $password);
    $query = $this->db->get('users');
    if($query->num_rows() > 0) {
        foreach($query->result() as $row) {
            $data = array(
                'id' => $row->id,
                'username' => $row->username,
                'email' => $row->email
            );
            $this->session->set_userdata($data);
        }
        return 1;
    } else {
        return false;
    }
}

在我看来,我有一个div来显示用户的会话用户名

<div>
    <?php echo $this->session->userdata('username'); ?>
</div>

它没有出现可能是什么问题?


当我像这样打印userdata()的内容时

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

我得到回应

Array ( [__ci_last_regenerate] => 1502894606 )

简化您的查询

$data = $this->db->where(['email'=>$email, 'password'=>$password])->get('users')->row_array();
if($data){
    $_SESSION['id'] = $data['id'];
    $_SESSION['username'] = $data['username'];
    $_SESSION['email'] = $data['email'];
    return TRUE;
}
else{
   return FALSE;
}

鉴于:

<div>
     <?php echo $_SESSION['username']; ?>
</div>

尝试像echo $data['username']这样打印出来,其中$data是您要从控制器发送到视图的变量

如果您实际上有一个用户名与

$row->username

然后在该数组之后,添加

$this->load->vars( array('username' => $row->username) );

在您看来,您将可以获得用户名

echo $username;

这是假设您在设置会话后没有重定向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM