PHP中password_hash函数返回null问题求助
问题原因与解决方案
核心问题
你调用password_hash()时缺少了必填的第二个参数——哈希算法常量,这是导致函数返回null的直接原因。
代码修正
将原代码中的:
$passw = password_hash($password);
修改为:
// 使用默认算法(推荐,会自动采用当前最安全的哈希算法) $passw = password_hash($password, PASSWORD_DEFAULT); // 或者指定具体算法,比如BCRYPT // $passw = password_hash($password, PASSWORD_BCRYPT);
补充说明
password_hash()函数要求至少传入两个参数:待哈希的密码字符串,以及指定哈希算法的常量(如PASSWORD_DEFAULT、PASSWORD_BCRYPT)。缺少第二个参数时,PHP会触发警告(若开启错误提示),并返回null或false。- 你提到登录逻辑中使用该函数无问题,大概率是登录代码里正确传入了第二个参数,而注册环节遗漏了。
验证建议
开启PHP开发环境的错误提示,可以看到类似如下警告,进一步确认问题:
Warning: password_hash() expects at least 2 parameters, 1 given in /var/www/lernapp/src/register.php on line XX
内容的提问来源于stack exchange,提问作者Jonathan Fuchs
相关产品推荐
相关产品推荐

