Bonjour,
Voila je rencontre un petit problème avec le tutoriel que j'ai suivi ici : https://www.youtube.com/watch?v=xA6pNSS9Q18
Lorque je rentre des fausses données pour me connecter il m'affiche tout en haut une notice qui dit :
Notice: Trying to get property 'password' of non-object in /opt/lampp/htdocs/class/Auth.php on line 92
Voici mon code dans Auth :
public function login($db, $username, $password, $remember = false){
$user = $db->query('SELECT * FROM users WHERE (username = :username OR email = :username) AND confirmed_at IS NOT NULL', ['username' => $username])->fetch();
if(password_verify($password, $user->password)){
$this->connect($user);
if($remember){
$this->remember($db, $user->id);
} else {
return $user;
}
} else {
return false;
}
}
J'aimerais que cette notice ne s'affiche plus et aussi que le message d'erreur s'affiche même lorsqu'on rentre aucune donnée dans les champs mais qu'on clique sur 'Me connecter', ce qui n'est pas le cas pour le moment.
Voici mon code dans login.php :
<?php
require 'inc/bootstrap.php';
$auth = App::getAuth();
$db = App::getDatabase();
$auth->connectFromCookie($db);
if($auth->user()){
App::redirect('account.php');
}
if(!empty($_POST) && !empty($_POST['username']) && !empty($_POST['password'])){
$user = $auth->login($db, $_POST['username'], $_POST['password'], isset($_POST['remember']));
$session = Session::getInstance();
if($user){
$session->setFlash('success', "Vous êtes maintenant connecté");
App::redirect('account.php');
} else {
$session->setFlash('danger', "Identifiant ou mot de passe incorrect");
}
}
?>
Merci de votre aide et de votre temps. :)