Impossible de faire comprendre qu'un mail existe déjà

[Résolu/Fermé]
Signaler
Messages postés
154
Date d'inscription
lundi 9 novembre 2015
Statut
Membre
Dernière intervention
29 mars 2017
-
Messages postés
33693
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 octobre 2021
-
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:


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

2 réponses

Messages postés
33693
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 octobre 2021
3 762
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 :-) )

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.



Messages postés
154
Date d'inscription
lundi 9 novembre 2015
Statut
Membre
Dernière intervention
29 mars 2017


<?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.
Messages postés
154
Date d'inscription
lundi 9 novembre 2015
Statut
Membre
Dernière intervention
29 mars 2017

Je viens de trouver ..

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
Messages postés
33693
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 octobre 2021
3 762 >
Messages postés
154
Date d'inscription
lundi 9 novembre 2015
Statut
Membre
Dernière intervention
29 mars 2017

Dans l'idéal... il serait bien que tu travailles avec des CLASSES.
Par exemple, une CLASS Membres dans laquelle tu mettrais tes fonctions d'ajout/suppression/Edition/ recherche...
Messages postés
154
Date d'inscription
lundi 9 novembre 2015
Statut
Membre
Dernière intervention
29 mars 2017

Je ne sais pas vraiment faire ça .. tu aurais un tutoriel ou autre pour que je puisse apprendre ?

--
Messages postés
33693
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 octobre 2021
3 762