Salut je te remercie de ta réponse, alors effectivement j'ai retrouvé l'erreur dans le header.php, du moins une erreur :
<?php if(isset($session['flash'])) : ?>
au lieu de
<?php if(isset($_SESSION['flash'])) : ?>
Maintenant quand je creer mon compte j'ai :
Un email de confirmation vous a été envoyé pour valider votre compte
<h1>Votre compte</h1>
Array
(
[auth] => stdClass Object
(
[id] => 19
[username] => blablabla
[email] => ..@..
[password] => $2y$10$a6A9IuNPkb0Z9.ACYd4qO.Srpagei/RzgepkAvJJwTKiiA2NrHIpe
[confirmation_token] => ygzmIb1qOuVluNO51U2IJa3sgJTLg3h0TD5lC1V1BoyoIoAtMSIo9G99aAwJ
[confirmed_at] =>
)
)
j'ai enfin le message qui apparait ( a la bonheur lol )
quand je valide :
Votre compte a bien été validé
Votre compte
Array
(
[auth] => stdClass Object
(
[id] => 20
[username] => blabla
[email] => ..@..
[password] => $2y$10$.4jghgZ4R0xsh17N7jfyDeP1H3xaKhxWMBdJbLU0jD/cGu6lJGzzm
[confirmation_token] => PGb9eSnmMRs73tfY51Uy7c8pQ7EOs8U6jnrKzPfOnHaEYOBm0pa0jk9Mx1Gg
[confirmed_at] =>
)
)
j'ai donc deux enregistrements différents et un seul enregistrement dans la bdd...
quand je reclique sur le lien pour tester ...
j'ai bien ce lien n'est plus valide et
Array
(
[auth] => stdClass Object
(
[id] => 20
[username] => blabla
[email] => ...@....
[password] => $2y$10$.4jghgZ4R0xsh17N7jfyDeP1H3xaKhxWMBdJbLU0jD/cGu6lJGzzm
[confirmation_token] => PGb9eSnmMRs73tfY51Uy7c8pQ7EOs8U6jnrKzPfOnHaEYOBm0pa0jk9Mx1Gg
[confirmed_at] =>
)
)
maintenant je vais chercher dans la page confirmation lol
je te tiens au courant :)
Par contre dans confirm.php tout m'a l'air normal :
<?php
$user_id = $_GET['id'];
$token = $_GET['token'];
require 'db.php';
$req = $pdo->prepare('SELECT * FROM users Where id= ?');
$req ->execute([$user_id]);
$user = $req-> fetch();
session_start();
if($user && $user->confirmation_token == $token){
$pdo->prepare('UPDATE users SET confirmation_token = NULL, confirmed_at = NOW() WHERE id = ?')->execute([$user_id]);
$_SESSION['flash']['success'] = 'Votre compte a bien été validé';
$_SESSION['auth'] = $user;
header('Location: account.php');
}else {
//die('Oupss un petit probleme..') ;
$_SESSION['flash']['danger']= "Ce lien n'est plus valide";
header('location: login.php');
}
?>