Bonjour,
Je coince depuis un moment sur la mise place d'un contrôle de validité regex d'un mot de passe dans un code de réinitialisation de ce mot de passe.
Comment coder ce contrôle de façon à afficher un message d'erreur comme celui_ci :
Le code de réinitialisation :
Merci par avance pour votre aide
Cordialement
Patrick Mara
Je coince depuis un moment sur la mise place d'un contrôle de validité regex d'un mot de passe dans un code de réinitialisation de ce mot de passe.
//$mdp = $_POST['password'];
//(preg_match('/^(?=.*[A-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@])\S{6,12}$/', $mdp))
Comment coder ce contrôle de façon à afficher un message d'erreur comme celui_ci :
$_SESSION['flash']['error'] = "Ce token n'est pas valide";
Le code de réinitialisation :
<?php
if(isset($_GET['id']) && isset($_GET['token'])){
require 'inc/db.php';
require 'inc/functions.php';
$req = $pdo->prepare('SELECT * FROM users WHERE id = ? AND reset_token IS NOT NULL AND reset_token = ? AND reset_at > DATE_SUB(NOW(), INTERVAL 30 MINUTE)');
$req->execute([$_GET['id'], $_GET['token']]);
$user = $req->fetch();
//$mdp = $_POST['password'];
//(preg_match('/^(?=.*[A-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@])\S{6,12}$/', $mdp))
if($user){
if(!empty($_POST)){
if(!empty($_POST['password']) && $_POST['password'] == $_POST['password_confirm']){
$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é';
$_SESSION['auth'] = $user;
header('Location: account.php');
exit();
}
}
}else{
session_start();
$_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