PHP密码验证在MySQLi中无法正常运行

PHP密码验证在MySQLi中无法正常运行,php,forms,session,mysqli,passwords,Php,Forms,Session,Mysqli,Passwords,我可以像这样散列和验证密码 <?php $password ="passss.com"; $hash = password_hash($password, PASSWORD_DEFAULT); if (password_verify('passss.com', $hash)) { echo 'Password is valid!'; } else { echo 'Invalid password.'; } ?>

我可以像这样散列和验证密码

<?php
    $password ="passss.com";
    $hash = password_hash($password, PASSWORD_DEFAULT);
    if (password_verify('passss.com', $hash)) {
         echo 'Password is valid!';
    } else {
      echo 'Invalid password.';
    }
?>

您确定使用php内置函数正确地散列了密码吗。差不多

$password=$_POST['password'];
$options = array("cost"=>4);
$hashPassword = password_hash($password,PASSWORD_BCRYPT,$options);
//这里传递$hashPassword并插入数据库

我已经在下面的链接中回答了这个问题,您可以在这里学习注册、验证密码哈希,然后登录


var\u转储散列密码,它显示了什么?另外,检查密码列的长度;它是什么?密码哈希列的大小是多少?大小是
varchar(255)
,但我可以将哈希值正确地插入表中。如果您手动输入/保存密码数组,为什么要使用POST数组检查密码验证?简单问一个问题:您使用
bind_param('s',$POST['username')
useremail=?
prepare
中,这有点让人困惑。谢谢你的回复Nancy,但正如我所说,我用这种方式对密码进行了哈希运算($password,password\u DEFAULT)
$password=$_POST['password'];
$options = array("cost"=>4);
$hashPassword = password_hash($password,PASSWORD_BCRYPT,$options);