salut j'ai suivi votre tuto sur gestion d"espace membre j'ai repris le code mais je me suis bloqué au niveau de reset.php
voici mon code
<?php
if(isset($_GET['id']) && isset($_GET['token'])){
require_once'inc/db.php';
require_once'inc/functions.php';

                              $req = $pdo ->prepare('SELECT * FROM members WHERE (id= :id AND  reset_token = :reset_token) AND reset_at > DATE_SUB(NOW(),INTERVAL 30 MINUTE)');
                              $req -> execute (array[$_GET['id'],$_GET['token']]);
                              $user = $req ->fetch();  

                                          $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 members SET password= ?, reset_at=NULL , reset_token = NULL')->execute($password);
                            session_start();
                             $_SESSION['flash']['succes']="Votre mot de passe a été bien modifié !!!";
                             $_SESSION['auth']=$user;
                             header('Location:account.php');
                              exit();
                                                    }

                                                }
                                                  }else{
                                                      session_start();
                                                      $_SESSION['flash']['danger']="Ce token n'est pas valide !!!";
                                                     header('Location:login.php');
                                                      exit();
                                                      }
                                                    }else{

                                                         header('Location:login.php');
                                                         exit();
                                                        }

?>
pour verifier http://www.dondou.fr/Comptes/remember.php

6 réponses


arnich
Réponse acceptée

Quel est l'erreur ?
Le lien proposé dans ton topic ne correspond pas a la page reset. Essais de completer un peu ta demande si tu veux de l'aide

arnich
Réponse acceptée

A la ligne 7

$req -> execute (array[$_GET['id'],$_GET['token']]);

pour créer un array soit tu mets array(val1, val2...) soit [val1, val2...]

Je pense que le mieux est de faire un truc du genre

$req -> execute (array('id' => $_GET['id'],'reset_token' => $_GET['token']));
kwik
Réponse acceptée

salut

comme la dit arnich l'erreur est au niveau de l'array, ensuite tu peux supprimé une de tes variables $user, tu l'instancies 2 fois

arona
Auteur

Salut message d'erreurs
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' in /htdocs/Comptes/reset.php:7 Stack trace: #0 /htdocs/Comptes/reset.php(7): PDOStatement->execute(Array) #1 {main} thrown in /htdocs/Comptes/reset.php on line 7

arona
Auteur

Merci encore vos deux réponses m'ont permis d'avancer aprés deux nuits de galère