微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

注意:尝试访问数组中 null 类型值的偏移量

如何解决注意:尝试访问数组中 null 类型值的偏移量

注意:尝试访问第 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 是否有任何值。 如果没有值则说明密码和用户输入错误,则在登录表单中代表用户。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。