Bonjour à Tous,
Je suis en train de perdre mon latin !!!
Dans le code ci-après je fais 3 tests :
Syntaxe du $_POST['password'] pas bonne
$_POST['password'] = $_POST['password_confirm']
Requête $pdo conforme
Pour chaque test je cherche à afficher un message avec $_SESSION['flash']…. Et mon problème se situe à ce niveau.
Le message relatif à la conformité de
$pdo->prepare('UPDATE users SET password = ?, reset_at = NULL, reset_token = NULL WHERE id = ?')->execute([$password, $_GET['id']]);
S’affiche normalement dans header('Location: login.php');
Les messages relatifs aux tests
Syntaxe du $_POST['password'] pas bonne
$_POST['password'] différent de $_POST['password_confirm']
ne s’affichent pas, je voudrai qu’ils s’affiche dans la page régie par le code ci-après.
Merci par avance pour votre aide
Cordialement
Patrick Mara
Je suis en train de perdre mon latin !!!
Dans le code ci-après je fais 3 tests :
Syntaxe du $_POST['password'] pas bonne
$_POST['password'] = $_POST['password_confirm']
Requête $pdo conforme
Pour chaque test je cherche à afficher un message avec $_SESSION['flash']…. Et mon problème se situe à ce niveau.
Le message relatif à la conformité de
$pdo->prepare('UPDATE users SET password = ?, reset_at = NULL, reset_token = NULL WHERE id = ?')->execute([$password, $_GET['id']]);
S’affiche normalement dans header('Location: login.php');
Les messages relatifs aux tests
Syntaxe du $_POST['password'] pas bonne
$_POST['password'] différent de $_POST['password_confirm']
ne s’affichent pas, je voudrai qu’ils s’affiche dans la page régie par le code ci-après.
if(!empty($_POST)){
if(!empty($_POST['password']) && $_POST['password'] == $_POST['password_confirm']){
session_start();
if( (!preg_match('/^(?=.*[A-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@])\S{8,12}$/', $_POST['password'])) )
$_SESSION['flash']['error'] = 'Votre mot de passe doit contenir entre 8 et 12 caractères etc ...';
exit();
$password = password_hash($_POST['password'], PASSWORD_BCRYPT);
$pdo->prepare('UPDATE users SET password = ?, reset_at = NULL, reset_token = NULL WHERE id = ?')->execute([$password, $_GET['id']]);
session_start();
$_SESSION['flash']['success'] = 'Votre mot de passe a bien été modifié<br>Vous pouvez maintenant accéder à l\'Espace Membre';
$_SESSION['auth'] = $user;
header('Location: account.php');
exit();
}else{
$_SESSION['flash']['error'] = 'Les mots de passe ne sont pas identiques';
}
}
}else{
session_start();
echo $_SESSION['flash']['error'] = "Ce token n'est pas valide";
header('Location: login.php');
exit();
}
}else{
header('Location: login.php');
exit();
}
Merci par avance pour votre aide
Cordialement
Patrick Mara