我正在观看YouTube上的登录系统指南,并重新创建它。即将完成,但是每次我尝试登录时,都会给我一个错误:
“密码错误”
我怀疑这与if语句中的 $ row 有关。但是我不知道 $ row 会做什么。
如果有人可以看到问题,我会留下一些代码。
<?php
else {
$sql = "SELECT * FROM users WHERE uidUsers=? OR emailUsers=?;";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../index.php?error=sqlerror");
exit();
}
else{
mysqli_stmt_bind_param($stmt, "ss", $mailuid, $mailuid);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
if ($row = mysqli_fetch_assoc($result)) {
$pwdCheck = password_verify($password, $row['pwdUsers']);
if ($pwdCheck == false) {
header("Location: ../index.php?error=wrongpwd");
exit();
}
elseif ($pwdCheck == true) {
session_start();
$_SESSION['userId'] = $row['idUsers'];
$_SESSION['userUid'] = $row['uidUsers'];
header("Location: ../index.php?login=succes");
exit();
} ?>
答案 0 :(得分:0)
如果($ row = mysqli_fetch_assoc($ result))
这将尝试从查询结果中获取一行。如果要从结果中获取一行,则将该行分配给 $ row 变量,并执行 if 语句。如果没有要从结果中提取的行,则 if 语句返回 false 并被跳过。