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