Bonjour,
J'ai suivie le tuto de Grafi sur comment créer une section utilisateur, j'en suis à 1H20 et j'ai un petit problème.
J'ai ce code donc :
if(isset($_GET['id']) && isset($_GET['token'])){
require 'inc/db.php';
require 'inc/functions.php';
$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){
debug($user);
}
else {
session_start();
$_SESSION['flash']['danger'] = 'La date de remise à zero a expiré';
header('Location: login.php');
exit();
}
}
else {
header('Location: login.php');
exit();
}
Je simule la perte de mon mot de passe, j'ouvre le lien avec l'id et le token, et on me renvoit quand même sur le deuxieme else(là ou il y a la session start() et le message $_SESSION grosso modo il me dit que le token a expiré.
Au début, j'ai pensé que c'était un probleme lié à l'heure de mon système mais apres apres un petit date, j'obtiens la bonne heure.
Ma BDD ressemble à ça :
<image>http://puu.sh/jOlzg/85643a4bc6.png</image>
Merci d'avance pour votre aide!
Edit, je viens de me rendre compte de ma connerie, le reset token n'avait qu'une taille de 50, le token n'y était donc pas en entier.
Merci quand même et désolé de vous avoir dérangé.
Le lien : http://monsite/reset.php?id=29&token=gnWc2ouw3zc6hXGvOgu7iaPRHpqaNgwlbnSBjMCizYq3OzkodamJ7uo98F3I
Et oui la condition vérifie si les variables GET sont déclarés, et c'est le but si j'ai bien compris, pour éviter de charger la BDD pour rien.
Et pour le reste du code le voici (même si je ne vois pas à quoi ça sert) :
<?php require_once 'inc/header.php'; ?>
<h1>Réinitialiser mon mot de passe</h1>
<form action="" method="POST">
<div class="form-group">
<label for="">Mot de passe</label>
<input type="password" name="password" class"form-control" required/>
</div>
<div class="form-group">
<label for="">Confirmation du mot de passe</label>
<input type="password" name="password_confirm" class"form-control" required/>
</div>
<button type="submit" class="btn btn-primary">Réinitialiser mon mot de passe</button>
</form>
<?php require_once 'inc/footer.php'; ?>