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 !
Bonjour,
Quand tu n'as pas le bon mdp, le session_start ne se fait pas donc aucun message n'est rentré dans $_SESSION