Impossible de faire comprendre qu'un mail existe déjà
Résolu
MisterGameFR
Messages postés
171
Statut
Membre
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
Bonjour,
Je suis en train de faire un espace membre, je suis actuellement en train de travailler sur le formulaire d'inscription (je suis débutant désoler) et je n'arrive pas à faire comprendre à ma base de donné que le mail existe déjà.. une solution ?
VOICI MON CODE:
Merci d'avance de vos réponses.
DLT
Je suis en train de faire un espace membre, je suis actuellement en train de travailler sur le formulaire d'inscription (je suis débutant désoler) et je n'arrive pas à faire comprendre à ma base de donné que le mail existe déjà.. une solution ?
VOICI MON CODE:
if(filter_var($mail, FILTER_VALIDATE_EMAIL))
{
$reqmail = $bdd->prepare('SELECT * FROM membres WHERE mail = ? ');
$reqmail->execute(array($mail));
$mailexist = $reqmail->rowCount();
if($mailexist == 0)
{
if($mail == $mail2)
{
if($mdp == $mdp2)
{
$insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp));
$erreur ="Votre compte à bien été créer, BIENVENUE ! ";
}
else
{
$erreur ="Vos mot de passe ne correpondent pas";
}
}
else
{
$erreur ="Adresse mail déjà utilisée";
}
Merci d'avance de vos réponses.
DLT
A voir également:
- Impossible de faire comprendre qu'un mail existe déjà
- Windows live mail - Télécharger - Mail
- Publipostage mail - Accueil - Word
- Comment télécharger un mail - Guide
- Comment transférer un mail sur un autre mail - Guide
- Serveur de reception mail - Guide
2 réponses
Bonjour,
1 - Attention... il semble manquer des accolades fermantes pour certains de tes if.
2 - L'utilisation de rowcount n'est pas conseillée (voir la notice ! )
3 - Voici le code corrigé (normalement :-) )
PS: Tu constateras que j'écris les IF ELSE de la façon suivante :
... en fait, je m'inspire de la norme d'écriture PSR2
http://www.php-fig.org/psr/psr-2/fr/
Ca rend le code plus lisible.
1 - Attention... il semble manquer des accolades fermantes pour certains de tes if.
2 - L'utilisation de rowcount n'est pas conseillée (voir la notice ! )
3 - Voici le code corrigé (normalement :-) )
if(filter_var($mail, FILTER_VALIDATE_EMAIL)){
$reqmail = $bdd->prepare('SELECT * FROM membres WHERE mail = :mail ');
$reqmail->execute(array(':mail'=>$mail));
$arr_mail = $reqmail->fetchAll();
$mailexist = count($arr_mail)>0 ? true : false;
if(!$mailexist) {
if($mail == $mail2) {
if($mdp == $mdp2) {
$insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mdp));
$erreur ="Votre compte à bien été créer, BIENVENUE ! ";
}else{
$erreur ="Vos mot de passe ne correpondent pas";
}
}
}else{
$erreur ="Adresse mail déjà utilisée";
}
}
PS: Tu constateras que j'écris les IF ELSE de la façon suivante :
if(condition){
}else{
}
... en fait, je m'inspire de la norme d'écriture PSR2
http://www.php-fig.org/psr/psr-2/fr/
Ca rend le code plus lisible.
<?php $bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', ''); if(isset($_POST['forminscription'])) { $pseudo = htmlspecialchars($_POST['pseudo']); $mail = htmlspecialchars($_POST['mail']); $mail2 = htmlspecialchars($_POST['mail2']); $mdp = sha1($_POST['mdp']); $mdp2 = sha1($_POST['mdp2']); if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])) { $pseudolenght = strlen($pseudo); if($pseudolenght <= 255) { if(filter_var($mail, FILTER_VALIDATE_EMAIL)){ $reqmail = $bdd->prepare('SELECT * FROM membres WHERE mail = :mail '); $reqmail->execute(array(':mail'=>$mail)); $arr_mail = $reqmail->fetchAll(); $mailexist = count($arr_mail)>0 ? true : false; if(!$mailexist) { if($mail == $mail2) { if($mdp == $mdp2) { $insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?, ?, ?)"); $insertmbr->execute(array($pseudo, $mail, $mdp)); $erreur ="Votre compte à bien été créer, BIENVENUE ! "; }else{ $erreur ="Vos mot de passe ne correpondent pas"; } }else{ $erreur ="Adresse mail déjà utilisée"; } } else { $erreur ="Votre adresse mail n'est pas valide"; } } else { $erreur ="Vos adresses mail ne correspondent pas"; } } else { $erreur ="Votre pseudo ne dois pas dépsser 255 caractères"; } } else { $erreur = " Tous les champs doivent être complétés"; } } ?>J'ai essayé votre code mais cela ne change absolument rien .. Je vous envoie le code complet.
Le problème venais du mot MEMBRES à la ligne 26 et 36 qui ne prend pas de S.
Merci de ton aide, si tu veux m'aidez pour m'organiser dans mes codes, je suis preneur :D
Par exemple, une CLASS Membres dans laquelle tu mettrais tes fonctions d'ajout/suppression/Edition/ recherche...