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

PHP实现页面密码访问时输入正确密码仍触发错误1如何解决?

故障原因与解决方案

你遇到的错误1触发于password_verify($password, $hashed_password)返回false的分支,说明密码校验逻辑未通过,可按以下顺序排查:

  • 优先检查数据库密码字段长度
    password_hash()函数生成的哈希值默认长度为60字符,若user_confirm表的password字段类型设置为varchar(50)或更短,存储时哈希会被截断,直接导致校验失败。请将字段长度调整为varchar(255)避免兼容问题。
  • 校验密码存储逻辑是否正确
    确认你向user_confirm表写入密码时,是直接存储password_hash()生成的原始哈希值,没有额外做trim、转义、拼接多余字符等操作。可在代码中加临时调试语句验证:
    $hashed_password = $row["password"];
    // 加入下面两行调试,输出后对比你输入的密码和库中存储的哈希是否匹配
    var_dump($password, $hashed_password);
    exit;
    
    你也可以手动拿你设置的明文密码和输出的哈希值,单独调用password_verify()测试是否返回true。
  • 排除字符编码不一致问题
    若密码包含中文或特殊符号,需要确认HTML页面编码、PHP文件编码、数据库连接编码、表/字段编码均统一为UTF-8(数据库推荐用utf8mb4)。
  • 确认没有存储明文密码
    password_verify()仅支持校验password_hash()生成的哈希值,若你入库时直接存储了明文密码,校验必然失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:54:02