Page 1 sur 1

Fonction login ne fonctionne plus

Posté : 19 août 2020, 00:49
par superNoob
Bonjour,
Voici mon nouveau problème,
J'ai un problème avec une connexion utilisateurs qui ne fonctionne pas.
Pourtant la BDD et la fonction register ça marche,... et là je suis bien connecté avec la redirection.
Mais sur la page login Je n'arrive pas à avoir le message "Vous êtes maintenant connecté" ni la connexion.

Voici le code à votre disposition Cordialement

Code : Tout sélectionner

require 'inc/header.php'; require 'inc/bootstrap.php'; $auth = App::getAuth(); $db = App::getDatabase(); $auth->connectFromCookie($db); if(!empty($_POST) && !empty($_POST['username']) && !empty($_POST['password'])){ if($auth->user()){ App::redirect('account.php'); } $user = $auth->login($db, $_POST['username'], $_POST['password'], isset($_POST['remember'])); if($user) { $_SESSION['auth'] = $user; $_SESSION['flash']['success'] = 'Vous êtes maintenant connecté'; App::redirect('account.php'); exit(); }else{ $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrect'; } } ?

Re: Fonction login ne fonctionne plus

Posté : 19 août 2020, 02:40
par superNoob
nouvelle info, j'ai testé avant de rajouter des tables, qui sont bien prises en compte lors de l'inscription et ça fonctionne.
Pourquoi? ce code n'a pas de souci pourtant !? Et en database j'ai l'inscription avec tous les champs qui fonctionnent.

Code : Tout sélectionner

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); } return $user; }else{ return false; } }

Re: Fonction login ne fonctionne plus

Posté : 19 août 2020, 05:46
par superNoob
Je ne comprends même pas les : dans la requête si quelqu'un peut me le traduire,
il me semble que c'est récent dans php, mais j'aimerais savoir ce que j'écris, et je pourrai progresser merci !!!

Code : Tout sélectionner

$user = $db->query('SELECT * FROM users WHERE (username = :username OR email = :username) AND confirmed_at IS NOT NULL', ['username' => $username])->fetch();

Re: Fonction login ne fonctionne plus

Posté : 19 août 2020, 08:29
par Spols
Les : signifie que ce qui suit est un token qui devra être remplacé par les valeur du tableau.

cela permet de séparer la logique de ta requète avec les paramètre qui changeront à chaque éxecution