Bonjour,
sur ma page mot de passe oublier, quand l'utilisateur clique sur valider cela change tous les mot de passes de mes membres.
Il y a quelques semaines cela fonctionnais très bien :/
Voici le code:

<?php
$PAGE_NAME = "Réinitialiser mon mot de passe";

require 'inc/constants.php';
require 'inc/db.php';
require 'inc/functions.php';

if(isset($_GET['id']) && isset($_GET['token'])){
    $req = $pdo->prepare('SELECT * FROM users WHERE id = ? AND reset_token IS NOT NULL AND reset_token = ? AND reset_at > DATE_SUB(NOW(), INTERVAL 30 MINUTE)');
    $req->execute([$_GET['id'], $_GET['token']]);
    $user = $req->fetch();
    if($user){
        if(!empty($_POST)){
            if(!empty($_POST['password']) && $_POST['password'] == $_POST['password_confirm']){
                $password = password_hash($_POST['password'], PASSWORD_BCRYPT);
                $pdo->prepare('UPDATE users SET password = ?, reset_at = NULL, reset_token = NULL')->execute([$password]);
                session_start();
                $_SESSION['flash']['success'] = 'Votre mot de passe a bien été modifié';
                $_SESSION['auth'] = $user;
                header('Location: account.php');
                exit();
            }
        }
    }else{
        session_start();
        $_SESSION['flash']['error'] = "Ce token n'est pas valide";
        header('Location: login.php');
        exit();
    }
}else{
    header('Location: login.php');
    exit();
}

require 'templates/template.header.php';
require 'templates/template.navbar.php';
require 'templates/template.reset.php';
require 'templates/template.footer.php';

Merci beaucoup

2 réponses


Bonjour Yubo,

Tu as oublié de mettre la condition WHERE dans ta requête SQL, fait plutôt comme ceci :

UPDATE users SET password = ?, reset_at = NULL, reset_token = NULL WHERE id = ?

Teste ça et donne nous ton retour, voir si le problème venait de là ou non.

Bon week-end,
Arkantos

Yubo
Auteur

Justement, j'avais mis cette clause avant de poster ce sujet mais une fois que je clique sur valider, page blanche :/