Réinitialisation mot de passe : UPDATE dans la BD

Messages postés
17
Date d'inscription
lundi 27 juillet 2009
Statut
Membre
Dernière intervention
23 juillet 2019
-
Bonjour à tous, 

Voici mon petit problème : Je suis en train de mettre en place un système de réinitialisation de mot de passe. Le processus de génération de la clé et l'envoi par e-mail fonctionne bien et est bien redirigé sur le formulaire "nouveau mon de passe". Là où est le problème c'est que quand il renseigne le mot de passe, celui-ci ne s'enregistre pas dans la table. De plus, dans la requête j'ai demandé aussi à ce que le champs qui contient la clé d'activation se vide automatique, rien ne fonctionne. Ma BD est bien connectée, puisque les paramètres passent bien par l'URL Etant un débutant en PHP j'ai du mal à comprendre. Est-ce que quelqu'un pourrait m'aider à comprendre ?
Les erreurs PDO/PHP sont activés mais aucune erreur n'est retournées.
Je vous en remercie d'avance.

Voici le code php :

<?php
//Récupération des infos URL
if(isset($_GET['id']) && isset($_GET['token'])) {
  include_once 'inc/bd.php';
  include_once 'inc/functions.php';

  //Vérification token généré dans la BD 
  $req = $connect->prepare('SELECT * FROM membres WHERE id = ? AND reset_token = ? date_reset > DATE_SUB(NOW(), INTERVAL 30 MINUTE)');
  $req->execute([$_GET['id'], $_GET['token']]);
  $membre = $req->fetch();
  if($membre){
    if(!empty($_POST)){
      //Vérification de la correspondance des deux password
      if(!empty($_POST['password']) AND $_POST['password'] == $_POST['password2']){
        
        //Mise à jour de l'utilisateur.
        $password = password_hash($_POST['pasword'], PASSWORD_BCRYPT); //Sécurisation du mot de passe.
        $connect->prepare('UPDATE membres SET password = ? reset_token = NULL, date_reset= NULL ')->execute([$password]);
        session_start();
        $_SESSION['flash']['success'] = "Votre mot de passe a bien été modifié !";
        $_SESSION['auth'] = $membre;
        header('location: account.php');
        exit;
      }
    } 
  }else{
    session_start();
    $_SESSION['flash']['error'] = "Cette clé n'est pas valide !";
    header('location: login.php');
    exit();
  }
}
?>
Afficher la suite