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

Résolu
MisterGameFR Messages postés 165 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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

A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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.



0
MisterGameFR Messages postés 165 Date d'inscription   Statut Membre Dernière intervention  
 

<?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.
0
MisterGameFR Messages postés 165 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > MisterGameFR Messages postés 165 Date d'inscription   Statut Membre Dernière intervention  
 
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...
0
MisterGameFR Messages postés 165 Date d'inscription   Statut Membre Dernière intervention  
 
Je ne sais pas vraiment faire ça .. tu aurais un tutoriel ou autre pour que je puisse apprendre ?

--
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
0