<form class="row" method="post" action="reinitialisation-mot-de-passe.php?token=<?php echo $_GET['token'];?>&id=<?php echo $id;?>"> <div class="col-md-6 col-sm-12"> <div class="form-group"> <label>Nouveau mot de passe <span class="required">*</span></label> <input type="password" placeholder="" name="password" class="form-control" required> </div> </div> <div class="col-md-6 col-sm-12"> <div class="form-group"> <label>Confirmer mot de passe</label> <input type="password" placeholder="" name="password_confirm" > </div> </div> <button type="submit" name="refresh" class="btn btn-default pull-right"> Réinitialiser <i class="fa fa-refresh"></i></button> </form>
$query = $con->prepare('SELECT password_recovery_asked_date FROM matable WHERE password_recovery_token = ? AND id_annonce = ?'); $query->bindValue(1, $_GET['token']); $query->bindValue(2, $_GET['id']); $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 $tokenDate = strtotime('+3 hours', strtotime($row['password_recovery_asked_date'])); $todayDate = time(); if ($dateToken < $dateToday) { // Si la date est dépassé le délais de 3hrs echo 'Token expiré !'; exit; } if (isset($_POST['refresh'])) { // Si le formulaire a été soumis if (!empty($_POST['password']) && !empty($_POST['password_confirm'])) { // Si le formulaire est correctement remplit if ($_POST['password'] == $_POST['password_confirm']) { // Si les deux mots de passes sont les mêmes // On hash le mot de passe $password = password_hash($_POST["password"], PASSWORD_BCRYPT); // On modifie les informations dans la base de données $query = $con->prepare('UPDATE matable SET m2p = ?, password_recovery_token = "" WHERE id_annonce = '.$id.''); $query->binValue(1, $password); $query->binValue(2, $_GET['token']); $query->binValue(3, $_GET['id']); $query->execute();}}}
$query = $con->prepare('SELECT password_recovery_asked_date FROM matable WHERE password_recovery_token = ? AND id_annonce = ?'); $query->execute(array($_GET['token'], $_GET['id']); $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 $tokenDate = strtotime('+3 hours', strtotime($row['password_recovery_asked_date'])); $todayDate = time(); if ($dateToken < $dateToday) { // Si la date est dépassé le délais de 3hrs echo 'Token expiré !'; exit; } if (isset($_POST['refresh'])) { // Si le formulaire a été soumis if (!empty($_POST['password']) && !empty($_POST['password_confirm'])) { // Si le formulaire est correctement remplit if ($_POST['password'] == $_POST['password_confirm']) { // Si les deux mots de passes sont les mêmes // On hash le mot de passe $password = password_hash($_POST["password"], PASSWORD_BCRYPT); // On modifie les informations dans la base de données $query = $con->prepare('UPDATE matable SET m2p = ?, password_recovery_token = ? WHERE id_annonce = ? VALUES(?, ?, ?)'); $query->execute(array($password, $_GET['token'], $_GET['id']));}}}
<form class="row" method="post" action="reinitialisation-mot-de-passe.php?token=<?= $_GET['token']?>&id=<?= $id?>">
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<form class="row" method="post" action="reinitialisation-mot-de-passe.php?token=<?= $_GET['token']?>&id=<?= $id?>"> <div class="col-md-6 col-sm-12"> <div class="form-group"> <label>Nouveau mot de passe <span class="required">*</span></label> <input type="password" placeholder="" name="password" class="form-control" required> </div> </div> <div class="col-md-6 col-sm-12"> <div class="form-group"> <label>Confirmer mot de passe<span class="required">*</span></label> <input type="password" placeholder="" name="password_confirm" class="form-control" required> </div> </div> <div class="col-md-12 col-sm-12"> <button type="submit" name="reboot" > Réinitialiser</button> </div> </form> </div> <div style="color:red;" id="errorMessages2"><?php echo $msg_m2p;?></div>
<?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>'; } } ?>