Double condition
Résolu
papyclic
Messages postés
446
Date d'inscription
Statut
Membre
Dernière intervention
-
papyclic Messages postés 446 Date d'inscription Statut Membre Dernière intervention -
papyclic Messages postés 446 Date d'inscription Statut Membre Dernière intervention -
Bonjour
J'ai fait une méthode afin de vérifier 2 conditions, je ne sais pas pourquoi elle ne fonctionne pas.
En fait même avec un pseudo différent elle s'arrete à la boucle de "Pseudo déjà pris"
Je me demandais si vous pouviez m'aider, en vous remerciant d'avance.
J'ai fait une méthode afin de vérifier 2 conditions, je ne sais pas pourquoi elle ne fonctionne pas.
En fait même avec un pseudo différent elle s'arrete à la boucle de "Pseudo déjà pris"
Je me demandais si vous pouviez m'aider, en vous remerciant d'avance.
public function verif() { if(empty($this->pseudo) || empty($this->password)) { $erreur = 'Veuillez remplir tous les champs'; return $erreur; } elseif ($this->pseudo == $this->pseudo) { $erreur = 'Ce Login existe déjà, veuillez en choisir un autre !'; return $erreur; } else { return 'success'; } }
A voir également:
- Double condition
- Double ecran - Guide
- Whatsapp double sim - Guide
- Excel cellule couleur si condition texte - Guide
- Double driver - Télécharger - Pilotes & Matériel
- Double appel - Guide
5 réponses
Bonjour,
1 - N'hésites pas à faire des ECHO de tes variables pour savoir ce qu'elles contiennent et donc t'assurer qu'elles correspond à ce que tu attends..
2 - dans ton ELSEIF .. tu test si Une variable....égale à cette même variable.. la réponse est donc toujours vrai !
1 - N'hésites pas à faire des ECHO de tes variables pour savoir ce qu'elles contiennent et donc t'assurer qu'elles correspond à ce que tu attends..
2 - dans ton ELSEIF .. tu test si Une variable....égale à cette même variable.. la réponse est donc toujours vrai !
public function verif() { // le temps des test : $erreur =""; $erreur .= "<br> pseudo :".$this->pseudo; $erreur .= "<br> password:".$this->password; if(empty($this->pseudo) || empty($this->password)) { $erreur .= 'Veuillez remplir tous les champs'; return $erreur; /* la condition ci-dessous sera TOUJOURS vrai... } elseif ($this->pseudo == $this->pseudo) { $erreur .= 'Ce Login existe déjà, veuillez en choisir un autre !'; return $erreur; */ } else { return 'success'; } }
Bonjour
Merci de ta réponse, j'ai un peu du mal à saisir, j'ai essayé de mettre "> 0" ça devais marcher ça non?
Si la ligne pseudo est plus grand que 0 alors erreur en principe.
Et là l'enregistrement renvoi success.
Je n'y comprend plus rien en fait.
Tu peux me redire un peu s'il te plait.
Je te remercie
Merci de ta réponse, j'ai un peu du mal à saisir, j'ai essayé de mettre "> 0" ça devais marcher ça non?
Si la ligne pseudo est plus grand que 0 alors erreur en principe.
Et là l'enregistrement renvoi success.
Je n'y comprend plus rien en fait.
Tu peux me redire un peu s'il te plait.
Je te remercie
Bonjour
J'aéi une BDD phpmyadmin
Comme ça l'enregistrement s'effectue même si le Login existe déjà dans ma BDD
Merci de pouvoir m'aider un peu
J'aéi une BDD phpmyadmin
Comme ça l'enregistrement s'effectue même si le Login existe déjà dans ma BDD
Merci de pouvoir m'aider un peu
public function verif() { if(empty($this->pseudo) || empty($this->password)) { $erreur = 'Veuillez remplir tous les champs'; return $erreur; } elseif ($this->pseudo > 0) { $erreur = 'Ce Login existe déjà, veuillez en choisir un autre !'; return $erreur; } else { return 'success'; } }
J'aéi une BDD phpmyadmin
Comme ça l'enregistrement s'effectue même si le Login existe déjà dans ma BDD
Ben vu ton code (ou plutôt les commentaires), j'ai l'impression que tu cherches à empêcher (return $erreur;) l'enregistrement si le login est dans la BDD...
D'ailleurs, this->pseudo > 0, il n'y a aucun lien avec la BDD. Si tu veux vérifier que ce login n'est pas en BDD, il faut faire une requête SQL...
Comme ça l'enregistrement s'effectue même si le Login existe déjà dans ma BDD
Ben vu ton code (ou plutôt les commentaires), j'ai l'impression que tu cherches à empêcher (return $erreur;) l'enregistrement si le login est dans la BDD...
D'ailleurs, this->pseudo > 0, il n'y a aucun lien avec la BDD. Si tu veux vérifier que ce login n'est pas en BDD, il faut faire une requête SQL...
Bonjour
En fait j'ai fait une requète je te montre la totalité, Merci de ton coup de main
Voici la class Inscription
Voici la page du formulaire
En fait j'ai fait une requète je te montre la totalité, Merci de ton coup de main
Voici la class Inscription
<?php class Inscription_class { private $pseudo; private $password; private $bdd; public function __construct($pseudo, $password) { $pseudo = Security::clean($pseudo); $password = Security::clean($password); $this->pseudo = $pseudo; $this->password = $password; $this->bdd = bdd(); } public function verif() { if(empty($this->pseudo) || empty($this->password)) { $erreur = 'Veuillez remplir tous les champs'; return $erreur; } elseif ($this->pseudo > 0) { $erreur = 'Ce Login existe déjà, veuillez en choisir un autre !'; return $erreur; } else { return 'success'; } } public function enregistrement() { $requete = $this->bdd->prepare('INSERT INTO tb_inscription(pseudo, password) VALUES(:pseudo, :password)'); $requete->execute(array( 'pseudo' => $this->pseudo, 'password' => $this->password )); return 'success'; }
Voici la page du formulaire
if(isset($_POST['pseudo']) AND isset($_POST['password'])) { $inscription = new Inscription_class($_POST['pseudo'], $_POST['password']); $verif = $inscription->verif(); if($verif == 'success') { if($inscription->enregistrement()) { $erreur[] = 'L\'enregistrement s\'est bien effectué'; } else { $erreur[] = 'Une erreur est survenue'; } } else { $erreur[] = $verif; } } if (isset($erreur)) { echo output_errors($erreur); } ?> <br/> <div id="ajout_user"> <form id="formulaire" action="" method="post"> <fieldset> <legend>Ajouter un membre</legend> <!--#######################################################################################################################################--> <table cellpadding="0" cellspacing="3"> <tr> <td width="20%"><img src="image/login.png" alt="Login" title="Login" height="22" width="22"/> Login :</td> <td width="30%"><input name="pseudo" class="ajout_user" size="30" type="text" value=""/></td> <td width="20%"><img src="image/password.png" alt="Mot de passe" title="Mot de passe" id="image_pwd" height="22" width="22"/> Mot de passe :</td> <td width="30%"><input name="password" class="ajout_user" size="30" type="text" value=""/></td> </tr> </table> <!--#######################################################################################################################################--> <input name="action" value="ajouter" type="hidden" /> <input type="submit" class="submit" value="Enregistrer"/> </fieldset> </form> </div>
Bonjour,
Dans ta class il te manque une requête sql pour savoir si ton user existe déjà...
Dans ta class il te manque une requête sql pour savoir si ton user existe déjà...
public function verif() { $sql= "SELECT * FROM tb_inscription WHERE pseudo= '$this->pseudo'"; $requete = $this->bdd->prepare($sql $requete->execute(); $result = $requete->fetchAll(); if(empty($this->pseudo) || empty($this->password)) { $erreur = 'Veuillez remplir tous les champs'; return $erreur; } elseif (count($result)>0) { $erreur = 'Ce Login existe déjà, veuillez en choisir un autre !'; return $erreur; } else { return 'success'; } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question