我制作了一个登录表单,虽然注册表单功能齐全,但登录表单似乎不起作用。 $user
和 $pwd
已声明,但 $pwd_hashed
保持为空。
if(isset($_GET['login'])) {
$user = $_POST['user'];
$pwd = $_POST['pwd'];
$stmt = $pdo->prepare("SELECT * FROM users WHERE user = :user");
$result = $stmt->execute(array('user' => $user));
$pwd_hash = $stmt->fetch();
if ($pwd_hash !== false && password_verify($pwd, $pwd_hash['password'])) {
$_SESSION['userid'] = $pwd_hash['id'];
die('Login successful<br>');
} else {
$errorMessage = "Username or password doesn't match<br>";
}
}
if(isset($errorMessage)) {
echo $errorMessage;
}
代码是否应该像这样工作,而我只是命名出了问题,还是代码中有错误?
最佳答案
此表单包含在另一个站点中,其中已选择数据库。通过删除它 (;dbname=test
) 并指定用户数据库 (users.users
),问题就消失了。
关于php - 无法在 MySQL 中获取登录表单的哈希密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55546927/