Requète si le pseudo existe

Résolu/Fermé
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 3 mai 2016 à 13:43
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 6 mai 2016 à 06:32
Bonjour,
Je suis en train de faire un formulaire de connexion.
Quatre conditions
1- si les champs sont vide
2- si le pseudo existe
3- si le membre à été banni
4- si le compte n'existe pas

Mon problème est que si un pseudo n'existe pas en BDD, je n'entre pas dans la condition 4 mais dans la condition 3, je ne comprends pas pourquoi??
Voici les requètes, merci pour votre aide

	private function ChampsVide() {
		return(empty($this->pseudo) || empty($this->passwd)) ? true : false;		
	}

	private function PseudoExist() {
		$sql = "SELECT *
					FROM cdc_Personnes
					LEFT JOIN cdc_Adherer
						ON cdc_Personnes.idpers = cdc_Adherer.idpers
							WHERE pseudo = :pseudo
							AND now() BETWEEN ddebut AND dfin";
		$requete = $this->bdd->prepare($sql);
		$requete->execute(array('pseudo' => $this->pseudo));
		$donnees = $requete->fetch();
		return ($donnees) ? $donnees['passwd'] : true;
		//si la requête retourne un résultat, on retourne le mot de passe sinon false 
	}

	private function Banni() {
		$sql = "SELECT *
					FROM cdc_Personnes
					LEFT JOIN cdc_Adherer
						ON cdc_Personnes.idpers = cdc_Adherer.idpers
							WHERE pseudo = :pseudo
							AND now() BETWEEN ddebut AND dfin";
		$requete = $this->bdd->prepare($sql);
		$requete->execute(array('pseudo' => $this->pseudo));
		$donnees = $requete->fetch();
		return($donnees) ? false : true;
	}
	
	private function Session() {
		$sql = "SELECT *
					FROM cdc_Personnes
				WHERE pseudo = :pseudo";
		$requete = $this->bdd->prepare($sql);
		$requete->execute(array('pseudo' => $this->pseudo));
		$donnees = $requete->fetch();
		$_SESSION['idpers'] 				= $donnees['idpers'];
		$_SESSION['prenom'] 				= $donnees['prenom'];
		$_SESSION['pseudo'] 				= $this->pseudo;
	}
	
	public function VerifConnexion() {
		if($this->ChampsVide()) {
			$erreur = "Veuillez remplir tous les champs";
			
		} else if($this->PseudoExist()) {
echo '$this->PseudoExist() retourne true : On vérifie si il est banni...';
			if($this->passwd == $this->PseudoExist()) {
echo 'Appel de la fonction Banni()';
				if(!$this->Banni()) {
				
					$erreur = "success";
					$this->Session();
					
				} else {
				 $erreur = "Ton compte a été supprimé";
				}
			} else {
				$erreur = "Mauvais mot de passe...ou Mauvais login...Merci de recommencer.</br> Peut-être n'êtes vous pas membre de la Clique ? Dans ce cas désolé...";
			}
		} else {
echo '$this->PseudoExist() retourne false : la fonction Banni() n\'est pas appelée';
			$erreur = "Ce compte n'existe pas";
		}
		return $erreur;
	}

7 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
3 mai 2016 à 14:04
Salut,

Ta fonction PseudoExist() retourne toujours une valeur correspondant à true converti en booléen : en effet ta fonction retourne soit le mot de passe (une chaine non vide) soit la valeur true.
Donc la condition else if($this->PseudoExist()) sera toujours validée (sauf si le mot de passe est une chaine vide).

La fonction PseudoExist() doit donc retourner false si l'utilisateur n'existe pas.

Bonne journée,
0
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
3 mai 2016 à 15:14
Bonjour
Merci encore de ton aide.
Maintenant si un pseudo qui existe pas je rentre bien dans la condition "ce compte n'existe pas" mais maintenant c'est la fonction Banni qui me fait défault??
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
3 mai 2016 à 16:55
Si le pseudo n'existe pas en base, il ne peut donc pas être banni.
0
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
3 mai 2016 à 16:59
si le pseudo qui a été Banni existe en BDD en fait
0
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
3 mai 2016 à 17:11
Quelques explications
Supposons qu'un adhérent adhére à notre association au 01/09/2015 je lui attribue des identifiants. Ensuite pour x raison il a démissionné le 02/02/2016
Avec ses identifiant il doit ne plus pouvoir se connecter, d'où la condition "Ton compte a été supprimpé"
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
4 mai 2016 à 10:51
Si les dates permettent de définir si le pseudo est banni ou non, dans ce cas la vérification des dates ne devrait pas être présente dans la requête de la fonction PseudoExist.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
4 mai 2016 à 16:20
Bonjour
Et OUI tu as raison BINGO il faut aucune condition dans la fonction PseudoExist des semaines que je suis deçu MERCI je suis NUL c'est d'une logique en plus.
Maintenant ça fonctionne bien
MERCI
0
MrLeBeignet Messages postés 19 Date d'inscription mardi 3 mai 2016 Statut Membre Dernière intervention 31 mai 2016
4 mai 2016 à 16:32
Salut je sais que le sujet est clos et résolu mais je te conseille vivement de regarder les tutoriaux de PrimFX sur YouTube. Si cela t'intéresse regarde sa chaîne et descend plus bas dans ses vidéos.

Bonne journée
0
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
6 mai 2016 à 06:32
Bonjour
Merci je ne connaissais pas.
Cordialement
0