Bonjour,
n'étant pas un expert concernant le langage php, je sollicite votre aide. Dans mon cas, je souhaite faire le lien entre le mail saisi de l'utilisateur avec ma base de donnée afin de savoir si il n'existe pas de doublon. Sauf que mon echo ne s'affiche pas, je vois l'erreur via PDO m'indiquant un doublon en BDD.
Voir la variable $reqmail pour les doublons, pouvez-vous m'expliquer ce qu'il ne va pas ?
Code php : 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135 <?php try{ $bdd =new PDO('mysql:host=localhost; dbname=knowthing; charset=utf8', 'root', ''); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } if(isset($_POST['validation'])) { $pseudo = htmlspecialchars($_POST['pseudo']); $Mail = htmlspecialchars($_POST['Mail']); $password = sha1($_POST['password']); $password2 = sha1($_POST['password2']); if (!empty($_POST['pseudo']) AND !empty ($_POST['Mail']) and !empty($_POST['password']) and !empty ($_POST['password2'])) { $pseudolenght =strlen($pseudo); if ($pseudolenght <= 50) { if (!empty($POST['Mail'])) { $reqmail = $bdd->prepare("select * from membres where mail = ? "); $reqmail->execute(array($Mail)); $mailexist = $reqmail->rowcount(); } if ($mailexist ==0) { if($password == $password2) { try { $sql = "INSERT INTO membres(membre_pseudo,membre_mail,membre_mdp) VALUES(?, ?, ?)"; $params = array($pseudo, $Mail, $password); $insertmbr = $bdd->prepare($sql); $insertmbr->execute($params); }catch(Exception $e) { echo "<br>ERREUR ! ".$e->getMessage()."<br>"; echo "<br>params : <br>"; print_r($params); } } else { $erreur = "Les mots de passe sont différents !"; } } else { $erreur = "Adresse mail déjà connu"; } } else { $erreur = " Votre pseudo ne doit pas dépasser 50 caractères"; } } else { $erreur = "Merci de remplir tous les champs !"; } } ?> <html> <head> <title>TUTO PHP </title> <meta charset="utf-8"> </head> <body> <div align="center"> <h2> Inscription </h2> <br /> <br /> <form method="POST" action=""> <table align="center"> <tr> <td align="right"> <label for= "pseudo"> Pseudo : </label> </td> <td> <input type="text" name="pseudo" placeholder="Votre pseudo" id="pseudo" value= "<?php if(isset($pseudo)) { echo $pseudo; } ?>" /> </td> </tr> <tr> <td align="right"> <label for= "Mail"> Mail : </label> </td> <td> <input type="email" name="Mail" placeholder="Votre mail" id="Mail" value= "<?php if(isset($Mail)) { echo $Mail; } ?>" /> </td> </tr> <tr> <td align="right"> <label for= "password"> Mot de passe : </label> </td> <td> <input type="password" name="password" placeholder="Saisir mot de passe" id="password" /> </td> </tr> <tr> <td align="right"> <label for= "password2"> Confirmation mot de passe : </label> </td> <td> <input type="password" name="password2" placeholder="Confirmation du mot de passe" id="password2" /> </td> </tr> <tr> <td> </td> <td align="center"> <br /> <input type="submit" name="validation" value="je m'inscris"> </td> </tr> </table> </form> <?php if (isset($erreur)) { echo '<font color="red">' .$erreur. "</font>"; } ?> </div> </body> </html>
Cordialement,
Partager