所以我想创建一个简单的登录结构,我不知道为什么它不起作用,我明白这里有很多例子,请不要标记为重复,我真的需要一些帮助,我尝试过,但我看不出我做错了什么。PHP登录页面与散列密码问题
<?php
session_start();
include 'databaseconnection.php';
$email = strip_tags($_POST['email']);
$pwd = strip_tags($_POST['pwd']);
$sql = "SELECT * FROM user WHERE email='$email'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$hash_pwd = $row['pwd'];
$hash = password_verify($pwd, $hash_pwd);
if ($hash == 0) {
header("Location: error.php")
exit();
} else {
$sql = "SELECT * FROM user WHERE email='$uid' AND pwd ='$hash_pwd'";
$result = mysqli_query($conn, $sql);
if (!row = mysqli_fetch_assoc($result)); {
echo "your email address or password is incorrect!";
} else {
$_SESSION['id'] = $row['id'];
}
header("Location: profile.php")
如果有人可以简单地建议我应该做什么改变,我会非常感激。
你不能“去散列”密码。散列密码的重点在于它是单向操作。 – Chris
也许我使用了错误的短语,但是password_verify不会散列输入的密码,并检查它是否与数据库上存储的散列相同? –
“不起作用”是什么意思? – Chris