Requète si le pseudo existe

[Résolu/Fermé]
Signaler
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
-
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
-
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

Messages postés
2441
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
30 juillet 2021
454
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,
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
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??
Messages postés
2441
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
30 juillet 2021
454
Si le pseudo n'existe pas en base, il ne peut donc pas être banni.
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
si le pseudo qui a été Banni existe en BDD en fait
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
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é"
Messages postés
2441
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
30 juillet 2021
454
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.
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
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
Messages postés
19
Date d'inscription
mardi 3 mai 2016
Statut
Membre
Dernière intervention
31 mai 2016

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
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
Bonjour
Merci je ne connaissais pas.
Cordialement