我使用PHP和MySQL创建了一个简单的注册登录服务,但是当我尝试登录时,即使输入了正确的ID和密码,它也会返回失败。
我不确定,但我认为password_verify()是问题所在。
我的数据库结构在这里
idx, int(10), AUTO_INCREMENT
id, varchar(255)
password, varchar(255)
email, varchar(255)注册过程就在这里
<?php
header('Content-Type: text/html; charset=utf-8');
$conn = mysqli_connect("localhost", "luminous", "***password***", "luminous");
$id = $_POST['id'];
$hashedPassword = password_hash($_POST['password'], PASSWORD_DEFAULT);
$email = $_POST['email'];
$query = "INSERT INTO member (id, password, email) VALUES('$id', '$hashedPassword', '$email')";
$result = mysqli_query($conn, $query);
if ($result === false)
{
echo "Failed to store.";
echo mysqli_error($conn);
}
else
{
?>
<script>
alert("Welcome, you've joined my service.");
// location.href = "../index.php";
</script>
<?php
}
?>登录过程在这里
<?php
header('Content-Type: text/html; charset=utf-8');
$conn = mysqli_connect("localhost", "luminous", "***password***", "luminous");
$id = $_POST['id'];
$password = $_POST['password'];
$query = "SELECT * FROM member WHERE id ='$id'";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_array($result);
$hashedPassword = isset($row['password']) ? $row['password'] : false;
$passwordResult = password_verify($password, $hashedPassword);
print_r($passwordResult);
// if ($passwordResult === true)
if($passwordResult === true)
{
session_start();
$_SESSION['id'] = $row['id'];
?>
<script>
alert("Login successful.")
location.href = "../index.php";
</script>
<?php
} else {
echo "wrong!!!";
?>
<script>
alert("Login failed.");
location.href = "../index.php";
</script>
<?php
}
?>( p.s.)我注册了考试帐户,ID - lumes密码- lumes电子邮件- lumes@lumes.kr.我检查了我的数据库是否返回正确的信息,但是数据库似乎没有问题,因为它返回了准确的信息。
0 : 9
idx : 9
1 : lumes
id : lumes
2 : $2y$10$LSjBJGmNMlyY12RU4NTnked3i26i5o7MIWnJ8slu0Y4FWH84vb6o.
password : $2y$10$LSjBJGmNMlyY12RU4NTnked3i26i5o7MIWnJ8slu0Y4FWH84vb6o.
3 : lumes@lumes.kr
email : lumes@lumes.kr我能做些什么来解决这个问题?我需要些帮助。
谢谢。
(我请求你的理解,尽管我不擅长问问题……!)
发布于 2022-01-31 06:19:14
这可能会帮助你php password_verify not working with database
检查散列是否正确地存储在数据库中。转储您从数据库获得的散列和散列密码,并检查它们是否相同。
https://stackoverflow.com/questions/70921764
复制相似问题