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

PHP注册功能可向SQL数据库提交用户名邮箱 但无法提交密码求助

排查步骤

  • 优先检查数据库blog_members表中password字段的长度
    BCRYPT算法生成的密码哈希固定为60位字符,若字段设置的varchar长度小于60(比如常见的错误设置为varchar(32)/varchar(50)),哈希值会被直接截断,导致入库后内容异常或完全为空。直接将字段长度调整为varchar(255)即可兼容所有PHP官方推荐的哈希算法生成的结果。
  • 验证$password变量是否正常获取到值
    在执行哈希操作前加一行调试代码打印变量:
    var_dump($password);exit;
    
    确认是否能正常拿到前端表单提交的密码内容,检查前端表单密码输入框的name属性是否和后端接收的字段名一致,避免出现前端是name="pwd"后端用$_POST['password']接收导致变量为空的问题。
  • 检查password_hash调用逻辑是否正确
    你代码中调用的是$user->password_hash,PHP原生的password_hash是全局函数无需依赖对象调用,如果你是自己在User类中封装了该方法,需要确认方法内部是否有正确return生成的哈希值,避免方法无返回值导致$hashedpassword为空。可以在哈希生成后加调试代码验证:
    $hashedpassword = $user->password_hash($password, PASSWORD_BCRYPT);
    var_dump($hashedpassword);exit;
    
    正常应该输出长度为60的字符串,若输出为空说明你的封装方法存在问题,直接换成原生全局函数调用即可解决。
  • 检查字段权限与属性
    确认password字段没有设置特殊的写入权限限制、也没有配置错误的默认值规则,导致插入时被自动覆盖为空。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:54:02