为什么我的 PHP 代码中的最后一个 else 语句不起作用?当我输入不存在的帐户时,它没有显示“电子邮件或密码不正确”错误消息。
<?php
include("connection.php");
$email_id = $password = $emailErr = $passErr = $loginErr = "";
if(isset($_POST["butLogin"])){
if(empty($_POST["email_id"])){
$emailErr = "This field cannot be empty!";
}else{
$email_id = $_POST["email_id"];
}
if(empty($_POST["password"])){
$passErr = "This field cannot be empty!";
}else{
$password = $_POST["password"];
}
if($email_id && $password){
$check_record = mysqli_query($connection, "SELECT * FROM user WHERE password = '$password' AND email = '$email_id'");
if (mysqli_num_rows($check_record) > 0 ){
$row = mysqli_fetch_assoc($check_record);
if(($email_id == $row['email']) && ($password == $row['password'])){
if($row['user_type'] == 1){
header("Location: /php/admin/index");
}else{
header("Location: /php/user/index");
}
}else{
$loginErr = "Incorrect email or password.";
}
}
}
}
?>
如果 account 不存在,mysqli_num_rows 将返回 0。您应该在该块中移动 else 条件。
if (mysqli_num_rows($check_record) > 0 ){
$row = mysqli_fetch_assoc($check_record);
if(($email_id == $row['email']) && ($password == $row['password'])){
if($row['user_type'] == 1){
header("Location: /php/admin/index");
}else{
header("Location: /php/user/index");
}
}
} else{
$loginErr = "Incorrect email or password.";
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句