问题描述
注意:尝试访问第 13 行 C:\xampp\htdocs\X$AMIT\login.PHP 中 null 类型值的数组偏移
第 13 行是: if (password_verify($password,$row['password'])) {
当我放入数据库中不存在的数据时出错。
<?PHP
session_start();
include('includes/connection.PHP');
if (isset($_POST['login'])) {
$username = MysqLi_real_escape_string($conn,$_POST['username']);
$password = MysqLi_real_escape_string($conn,$_POST['password']);
$query = "SELECT password,name,status FROM users WHERE username = '$username'";
$result = MysqLi_query($conn,$query);
$row = MysqLi_fetch_assoc($result);
if (password_verify($password,$row['password'])) {
$_SESSION['logged_in'] = true;
if ($row['status'] == 'U') {
$_SESSION['check_status'] = 'U';
$_SESSION['name'] = $row['name'];
$_SESSION['success_login'] = "login successfully";
header('refresh:2; index.PHP');
}
else if ($row['status'] == 'A') {
$_SESSION['check_status'] = 'A';
$_SESSION['name'] = $row['name'];
$_SESSION['success_login'] = "login successfully";
header('refresh:2; index.PHP');
}
}
else {
$_SESSION['err_login'] = "ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง";
#header('refresh:2; login.PHP');
}
}
?>
解决方法
你尝试做的事情是行不通的。
之后:
$row = mysqli_fetch_assoc($result);
您必须检查 $row 是否有任何值。 如果没有值则说明密码和用户输入错误,则在登录表单中代表用户。