mot de passe oublié

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mot de passe oublié

Re: mot de passe oublié

par @rthur » 10 mars 2022, 00:26

Active la gestion d'erreur de PDO en mode Warning :
https://www.php.net/manual/fr/pdo.error-handling.php

Si pas d'erreur, teste ta requête dans phpMyAdmin

Re: mot de passe oublié

par Rachi2du67 » 09 mars 2022, 21:17

Bonjour,

Merci Or 1

J'ai mis des echos pour débugger et l'endroit où ça bloque c'est au niveau de la requête Update

On retre bien dans la et les conditions mais mon dernier echo se situe avant la MAJ dans la bdd
J'ai même changé ma requête (ne maitrise pas bien SQL)
Mais rien ne change, merci d'avance !

Code : Tout sélectionner

$query1 = 'UPDATE matable SET m2p = :m2p, password_recovery_token = :pass WHERE id_annonce = :id'; $query2 = $con->prepare($query1); $query2->bindParam(':m2p', $password, PDO::PARAM_STR); $query2->bindParam(':pass', 'NULL', PDO::PARAM_STR); $query2->bindParam(':id', $id, PDO::PARAM_INT); $query2->execute(); // vérifier si la requête d'insertion a réussi if($query2){ echo 'Les données ont bien été insérées'; }else{ echo "Une erreur est survenue !"; }

Re: mot de passe oublié

par or 1 » 24 févr. 2022, 14:59

il faut débuguer, par exemple, mettre un echo pour savoir si cela rentre dans ce if
if (isset($_POST['reboot']))
{

mot de passe oublié

par rach » 24 févr. 2022, 14:52

bonjour,

Je rencontre une difficulté, j'ai une première page qui traite la demande de reinitialisation du mot de passe de l'utilisateur. Celle-ci génère un token et une date de demande qui alimente ma table et envoye un mail à l'utilisateur avec lien cliquable pour qu'il en redéfinisse un nouveau. Mon soucis se situe dans le traitement de cette deuxième page. Je ne sais pas où ça pêche. Merci d'avance

Code : Tout sélectionner

<?php if (isset($_POST['reboot'])) { $query = $con->prepare('SELECT password_recovery_asked_date FROM matable WHERE password_recovery_token = ?'); $query->bindValue(1, $_GET['token']); $query->execute(); $row = $query->fetch(PDO::FETCH_ASSOC); if (empty($row)) { echo 'Ce token n\'a pas été trouvé'; exit; } // On calcul la date de la génération du token + 3hrs $dateToken = strtotime('+3 hours', strtotime($row['password_recovery_asked_date'])); $dateToday = time(); if ($dateToken < $dateToday) { // Si la date est dépassé le délais de 3hrs echo 'Token expiré !'; exit; } if (!empty($_POST['password']) && !empty($_POST['password_confirm'])) { if ($_POST['password'] === $_POST['password_confirm']) { $password = password_hash($_POST["password"], PASSWORD_BCRYPT); $query = $con->prepare('UPDATE matable SET m2p = ?, password_recovery_token = " " WHERE id_annonce = ?'); $query->binValue(1, $password); $query->binValue(2,$id); $query->execute(); //$query->execute(); $msg_m2p = '<div style="color: green;">Le mot de passe a été changé !</div>'; } else { // si les deux mots de passe ne sont pas identiques $msg_m2p = '<div style="color: red;">Les deux mots de passes ne sont pas identiques.</div>'; } } else { $msg_m2p = '<div style="color: red; ">Veuillez remplir tous les champs du formulaire.</div>'; } } ?>