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

Résolu/Fermé
MisterGameFR Messages postés 153 Date d'inscription lundi 9 novembre 2015 Statut Membre Dernière intervention 29 mars 2017 - 23 déc. 2015 à 11:57
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 25 déc. 2015 à 01:45
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
23 déc. 2015 à 12:50
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 153 Date d'inscription lundi 9 novembre 2015 Statut Membre Dernière intervention 29 mars 2017
23 déc. 2015 à 19:38

<?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 153 Date d'inscription lundi 9 novembre 2015 Statut Membre Dernière intervention 29 mars 2017
23 déc. 2015 à 19:53
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > MisterGameFR Messages postés 153 Date d'inscription lundi 9 novembre 2015 Statut Membre Dernière intervention 29 mars 2017
23 déc. 2015 à 20:27
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 153 Date d'inscription lundi 9 novembre 2015 Statut Membre Dernière intervention 29 mars 2017
23 déc. 2015 à 20:58
Je ne sais pas vraiment faire ça .. tu aurais un tutoriel ou autre pour que je puisse apprendre ?

--
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
25 déc. 2015 à 01:45
0