Espace Membre (login.php : erreur ne s'affiche pas)

Par soltina, il y a 7 ans


Bonjour,

Lorsque je me connecte avec le bon identifiant et mot de passe, le message flash "Vous êtes maintenant connecté apparaît"; quand je déconnecte cela fonctionne aussi.
Par contre, lorsque je fais une erreur dans l'identifiant ou mot de passe, le message flash "id ou mdp incorrecte" n'apparaît pas.

login.php

<?php if(!empty($_POST) && !empty($_POST['username']) && !empty($_POST['password'])){ require_once "inc/db.php"; require_once 'inc/function.php'; $req = $pdo->prepare("SELECT * FROM users WHERE (username=:username OR email=:username) AND confirmed_at IS NOT NULL"); $req->execute(['username'=>$_POST['username']]); $user = $req->fetch(); if(password_verify($_POST['password'], $user->password)){ session_start(); $_SESSION['auth'] = $user; $_SESSION['flash']['success'] = "Vous êtes maintenant connecté"; header("Location:account.php"); exit(); }else{ $_SESSION['flash']['danger'] = "identifiant ou mot de passe incorrecte"; } } require'inc/header.php'; ?> <h1>Se connecter</h1> <form action="" method="POST"> <div class="form-group"> <label for="">Pseudo ou email </label> <input type="text" class="form-control" name="username" > </div> <div class="form-group"> <label for="">Mot de passe</label> <input type="password" class="form-control" name="password" > </div> <button type="submit" class="btn btn-primary">Se connecter</button> </form> <?php require 'inc/footer.php'; ?>

j'ai tenté de changer la condition comme conseillé dans un précédent post; mais cela ne fonctionne toujours pas.

if($user && password_verify($_POST['password'], $user->password)){

Quelqu'un pourrait-il m'expliquer le problème ? Merci d'avance !

1 réponse

Carouge10, il y a 7 ans

Bonjour,
Quand tu n'as pas le bon mdp, le session_start ne se fait pas donc aucun message n'est rentré dans $_SESSION