PHP: Попытка получить доступ к смещению массива по значению типа null - PullRequest
0 голосов
/ 28 апреля 2020

Вот строка, из которой исходит ошибка ...

If (password_verify($password, $user['password'])){}

Вот что внутри этого утверждения ...

    $_SESSION['id'] = $user['id']; 
    $_SESSION['username'] = $user['username']; 
    $_SESSION['email'] = $user['email']; 
    $_SESSION['verified'] = $user['verified']; 
    $_SESSION['message'] = "Success!"; 
    $_SESSION['alert-class'] = "alert-success"; 
    header ('location: verification.php'); 
    exit(); 
} else { 
    $errors['login_fail'] = "Incorrect Username or Password"; 
} 

1 Ответ

1 голос
/ 28 апреля 2020

Вам необходимо проверить, удалось ли вам загрузить пользователя из БД. Похоже, что функция, загружающая данные из БД, возвращает null, когда пользователь не найден.

Вы можете изменить свое состояние на что-то вроде этого:

if(!empty($user) && password_verify($password, $user['password'])) {
  // ... log in user
} else {
  // ... do something when password or user doesn't match
}
...