You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter登录后无法显示用户firstname的问题求助

解决CodeIgniter登录后无法显示firstname的问题

以下是排查和解决的具体步骤:

1. 检查数据库字段名匹配

最常见的问题是代码字段名与数据库实际字段名不匹配:

  • 打开users数据表,确认存储用户名字的字段是firstname,还是类似first_name的下划线命名格式。
  • 如果数据库字段是first_name,需要修改控制器里的赋值代码:将$result->firstname改为$result->first_name,若视图中仍用firstname作为Session键,只需保持auth_details数组的键为firstname,值对应修改即可。

2. 验证模型返回的数据

在控制器登录逻辑中添加临时调试代码,确认模型是否正确取出firstname:

if($result){
    // 临时打印返回的用户数据
    var_dump($result);
    die();
    // 原有的Session赋值代码...
}

登录后查看输出对象,确认是否包含firstname属性及对应有效值。若不存在该属性,说明数据库字段名错误或查询逻辑有问题。

3. 确认Session是否正确存入数据

若模型返回了正确的firstname,可在Session赋值后立即验证存储情况:

$this->session->set_userdata($auth_details);
// 临时打印当前Session所有数据
var_dump($this->session->userdata());
die();

检查输出数组中是否存在firstname键及正确值。由于你能正常取出username,Session功能大概率正常,此步骤主要排查赋值环节的问题。

4. 检查视图代码的拼写

确认视图中Session键名拼写完全一致:

<h2> Welcome <?php echo $this->session->userdata('firstname'); ?> </h2>

注意firstname的大小写需与控制器auth_details数组的键完全匹配,CodeIgniter的Session键区分大小写。

额外排查:明确指定查询字段

若以上步骤均无问题,可修改模型查询,明确指定需要的字段,避免select('*')可能出现的意外:

public function login_user($data){
    $this->db->select('firstname, lastname, username, password'); // 明确列出所需字段
    $this->db->where('username', $data['username']);
    $this->db->where('password', $data['password']);
    $this->db->from('users');
    $this->db->limit(1);
    $query = $this->db->get();
    if($query->num_rows() == 1){
        return $query->row();
    } else {
        return false;
    }
}

内容的提问来源于stack exchange,提问作者Kimpoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 07:36:29