password_hash 仍然散列并存储一个未定义的变量

password_hash still hashes and stores an undefined variable

我有一个成功写入数据库的脚本。 但是,当我更改变量名称 $password1$password9$password34 并保存脚本时,该脚本仍然有效,并且数据库中出现一个新条目,其中填写了所有字段,包括密码字段。

$password0 = trim($_POST['password1']);
$hashed_passcode = password_hash($password4, PASSWORD_DEFAULT);
mysqli_stmt_bind_param($q, 'ssss', $first_name, $last_name, $email, $hashed_passcode);

以上是一个示例,我将变量更改为 $password0。当我对它进行哈希处理时,变量是 $password4。我重新提交表格,它仍然有效。怎么会这样?

原因是它会创建一个哈希值,它只是不会存储与您要存储的实际密码关联的哈希值。

虽然设置了所有 error reporting,但会发出未定义变量的信号。

注意: password_hash() 仅散列密码,不显示任何类型的错误,这不是它的工作,它是错误处理服务器。