C'est peut-être parce que 0 c'est différent de 1
if ($sth->fetchColumn() !== 1) à remplacer par if ($sth->fetchColumn() >= 1).
C'est peut-être parce que 0 c'est différent de 1
if ($sth->fetchColumn() !== 1) à remplacer par if ($sth->fetchColumn() >= 1).
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.
Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]
Je connais pas la fonction fetchColumn(), c'est un autre membre qui m'a déjà aidé pour ca :S
En tout cas, tous les tests marchent!
Mais je ne reçoit pas d'email de confirmation
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
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 <?php try { $bdd = new PDO('mysql:host=localhost;dbname=asbl;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } catch(Exception $e) { //En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } // Si la bd s'ouvre, on continue // Vérification de la validité des informations if(!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['mail']) && !empty($_POST['pass']) && !empty($_POST['pass2'])) { if (filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL) == TRUE) { $sth = $bdd->prepare('SELECT COUNT(email) FROM membres WHERE email = :email'); $sth->execute(array(':email' => $_POST['mail'])); if($sth->fetchColumn() >= 1) { header('Location: connexion.php?error=existEmail'); exit(); } if($_POST['pass'] == $_POST['pass2']) { // Hachage du mot de passe $pass_hache = sha1($_POST['pass']); //Création clé activation $cle = md5(microtime(TRUE)*100000); // Insertion $req = $bdd->prepare('INSERT INTO membres(nom, prenom, email, pass, membreASBL, cle, actif) VALUES(:nom, :prenom, :mail, :pass, 0, :cle, 0)'); $req->execute(array( 'nom' => $_POST['nom'], 'prenom' => $_POST['prenom'], 'mail' => $_POST['mail'], 'pass' => $pass_hache, 'cle' => $cle)); // Préparation du mail contenant le lien d'activation $email = $_POST['mail']; $destinataire = $email; $sujet = "Activation de votre compte" ; $entete = "From: noreply@casbahtrasenster.com" ; $message = "Bienvenue sur le site de l'ASBL La Casbah Trasenster, Pour activer votre compte, veuillez cliquer sur le lien ci dessous ou le copier/coller dans votre navigateur internet. http://votresite.com/activation.php?log=".urlencode($email)."&cle=".urlencode($cle)." --------------- Ceci est un mail automatique, Merci de ne pas y répondre."; mail($destinataire, $sujet, $message, $entete); } else { //echo "Les mots de passe ne sont pas identiques"; header('Location: inscription.php?error=passwordMismatch'); exit(); } } else { //echo "L'adresse " . $_POST['mail'] . " n'est pas valide, recommencez !"; header('Location: inscription.php?error=invalidEmail'); exit(); } //Inscription réussie header('Location: accueil.php?error=InscripOK'); exit(); } else // Il manque des paramètres, on avertit le visiteur { //echo 'Veuillez remplir tous les champs du formulaire'; header('Location: inscription.php?error=emptyField'); exit(); } ?>
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager