Bonjour,
Sur la page d'inscription d'un site, je cherche à afficher un message d'alerte pour l'inscription d'un membre dans le cas où celui-ci utiliserait un mot de passe déjà pris par un autre utilisateur, et de fait stocké en BDD.
J'ai pour cela couplé une fonction COUNT avec un fetchAll() sans succès. Le code ci dessous accepte tous les mdp sans restriction
Vous remerciant pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <?php function add() {//controler : ajoute un membre en bdd sous réserve que celui-ci ne soit pas déjà utilisé $manager = new Manager_Membre(); $_POST['pass'] = password_hash($_POST['pass'], PASSWORD_DEFAULT);//cryptage irréversible mdp utilisateur if($manager->ifMdpExists($_POST['pass'])) { echo 'ce mot de passe existe déjà'; } else { $data_user = ['pseudo' => $_POST['pseudo'], 'pass' => $_POST['pass']]; $membre = new Membre($data_user); $affectedLine = $manager->addMember($membre); header('Location: index.php?action=index'); } } function ifMdpExists() {//Modele renvoie true ou false selon que le mdp est déjà pris par un autre utilisateur avec le transtypage booléen $stmt = $this->_db->prepare('SELECT COUNT(*) FROM membres WHERE pass = :pass'); $stmt->execute(array('pass' => $_POST['pass'])); return (bool) $stmt->fetchColumn(2);//correspond à la colonne de mes mdp en bdd }
Olivier
Partager