Mot de passe oublier

Par KiloOctet, il y a 5 ans


Bonjour,

Je n'y arrive pas a modifier mon mot de passe. Lorsque je renseigne mon email, je reçois bien le mail avec le liens pour aller changer le mot de passe et quand je mets le mot de passe rien ne se passe?! aidez moi s'il vous plait, merci beaucoup.

<?php $errors = []; $success = false; if(!empty($_POST) && isset($_POST['envoi-password']) { include '../inc/init.php'; /*$req_updateMembre = 'SELECT * FROM users WHERE email = :email AND code_reset = :code_reset'; $sql_updateMembre = $pdo->prepare($req_updateMembre); $sql_update->execute( [ '' ] );*/ if(!empty($_POST['password'])) { $password = trim($_POST['password']); $passwordHash = password_hash($password, PASSWORD_DEFAULT); if($passwordHash) { $sql_insertpassword = 'UPDATE users SET password = '.$passwordHash.' WHERE id = :id'; $insert_password = $pdo->prepare($sql_insertpassword); $insert_password->execute( [ 'password' => $passwordHash, 'id' => $_SESSION['id'] ] ); $success = true; }else{ array_push($errors, ['password', "Une erreur s'est produite, veuillez réessayyter"]); } } } $return = [ 'success' => $success, 'errors' => $errors ]; die(json_encode($success)); ?>

après avoir cliquer sur le liens j'ai mis en paramètre $_GET le mail et le code_reset, lorsque je clique sur le liens sa me redirige vers la page de rset.php ou je dois modifier mon mot de passe que je n'arrive pas:

<?php // On regarde si les paramètres sont bien renseignés if(!empty($_GET['email']) && !empty($_GET['code_reset'])) { include '../inc/init.php'; $email = $_GET['email']; $code_reset = $_GET['code_reset']; // On récupère ces données dans la base $sql_selectMembre = 'SELECT * FROM users WHERE email = :email AND code_reset = :code_reset'; $req_selectMembre = $pdo->prepare($sql_selectMembre); $req_selectMembre->execute( [ 'email' => $email, 'code_reset' => $code_reset ] ); $nbr_selectMembre = $req_selectMembre->rowCount(); // Si le compte existe bien if($nbr_selectMembre == 1) { $selectMembre = $req_selectMembre->fetch(); // On mets à jour le compte actif $sql_updateMembre = 'UPDATE users SET code_reset = NULL WHERE id = :id'; $req_updateMembre = $pdo->prepare($sql_updateMembre); $req_updateMembre->execute( [ 'id' => $selectMembre['id'] ] ); //page que je dois créer header('location: ../reset_password.php?password_confirme=true'); } } ?>

2 réponses

Carouge10, il y a 5 ans

Bonsoir,
il manque le marqueur ":password" pour la requête d'UPDATE
Mais comme tu n'as pas activé l'affichage des erreurs PDO, les erreurs restes muettes

KiloOctet, il y a 5 ans

D'accord je vais voir cela.