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

CodeIgniter新手提交表单后POST参数无法插入数据库问题求助

问题排查及解决

核心错误

你控制器中的代码执行顺序完全错误:return $this->load->view('auth/login'); 写在了入库逻辑的前面,代码执行到return语句就会直接终止,后续判断POST提交、写入数据库的逻辑永远不会被触发,这是提交后没有数据写入的根本原因。

其他可优化/需修正的点

  • 表单未显式指定提交地址,虽然默认会提交到当前控制器方法,但显式配置更稳妥,避免路由规则变动导致提交失败
  • 直接操作$_POST而非使用CodeIgniter自带的输入类方法,不符合框架规范,也缺少自动过滤的能力
  • 密码明文存储到数据库存在严重安全隐患,建议使用加密方法处理
  • 模型入库逻辑未判断插入结果,无法区分是否真的写入成功
  • 若你开启了CodeIgniter的CSRF防护,表单中缺少CSRF令牌字段会导致POST请求被拦截

修正后的代码

视图层代码

<form method="POST" action="<?php echo site_url('auth/index'); ?>">
    <!-- 如果开启了CSRF,取消下面这行的注释 -->
    <!-- <input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash(); ?>"> -->
    <label>Username</label>
    <input type="text" name="username" required/>
    <br/>
    <label>Password</label>
    <input type="password" name="password" required/>
    <br/>
    <button type="submit" name="login">Sign In</button>
</form>

控制器Auth类代码

class Auth extends CI_Controller{
    public function index(){
        $this->load->model("membership_model");
        $content = [];
        // 先判断POST提交,处理业务逻辑
        if($this->input->post('username') && $this->input->post('password')){
            $username = $this->input->post('username', true); // 第二个参数开启XSS过滤
            $password = password_hash($this->input->post('password'), PASSWORD_DEFAULT); // 加密密码
            $content['insert_result'] = $this->membership_model->create_user($username, $password);
        }
        // 最后再加载视图
        return $this->load->view('auth/login', $content);
    }
}

模型Membership_model类代码

class Membership_model extends CI_Model {
    public function create_user($username,$password){
        $insert_data = [
            'display_name' => $username,
            'password' => $password
        ];
        $this->db->insert("table1", $insert_data);
        // 返回实际插入结果,而不是固定返回true
        return $this->db->affected_rows() > 0;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:36:04