Condition PHP
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
Je souhaiterai ajouter une condition à ma fonction, pour que les membres qui sont actif(champ de ma BDD) à 0 ne puissent pas se connecter.
J'ai essayé pas mal de fois et je ne n'y arrive pas.
Pouvez vous m'aider à me résoudre ce problème s'ils vous plait.
En vous remerciant, voici ma méthode verif de ma connexion.
Je souhaiterai ajouter une condition à ma fonction, pour que les membres qui sont actif(champ de ma BDD) à 0 ne puissent pas se connecter.
J'ai essayé pas mal de fois et je ne n'y arrive pas.
Pouvez vous m'aider à me résoudre ce problème s'ils vous plait.
En vous remerciant, voici ma méthode verif de ma connexion.
public function Verif() { $requete = $this->bdd->prepare('SELECT * FROM tb_adherent WHERE pseudo = :pseudo'); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); if(empty($this->pseudo) || empty($this->password)) { $erreur = 'Veuillez remplir tous les champs'; return $erreur; } elseif($result) { if($this->password == $result['password']) { return 'success'; } 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é..."; return $erreur; } } 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é..."; return $erreur; } }
A voir également:
- Condition PHP
- Excel cellule couleur si condition texte - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Excel condition ou - Guide
- Condition optimale téléphone ✓ - Forum Mobile
10 réponses
public function Verif() { $requete = $this->bdd->prepare('SELECT * FROM tb_adherent WHERE pseudo = :pseudo'); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); if(empty($this->pseudo) || empty($this->password)) { $erreur = 'Veuillez remplir tous les champs'; return $erreur; } elseif($result) { if($this->password == $result['password']) { return 'success'; } 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é..."; return $erreur; } } 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é..."; return $erreur; } }
et mon script que je veux intégrer
if($result['actif']==0) { $erreur = "compte supprimé"; return $erreur; } else { return 'success'; }
Bonjour,
Il te suffit de mettre un AND dans le WHERE de ta requête SQL..
Il te suffit de mettre un AND dans le WHERE de ta requête SQL..
$requete = $this->bdd->prepare('SELECT * FROM tb_adherent WHERE pseudo = :pseudo' AND actif <>0);
Bonjour
Merci de ta réponse, effectivement ça je ne le voulais pas.
En effet ce que je souhaiterai c'est de pouvoir faire une fonction pour laquelle je peux mettre une condition si le membre a été banni, il rentre donc ses bons identifiant mais malheureusement pour lui il a été banni sinon avec une condition dans la requète il ne pourra pas se connecter sans savoir pourquoi.
Alors je ne sais pas trop comment faire en fait, c'est un peu complexe si tu peux me donner quelques conseils
Merci beaucoup
Merci de ta réponse, effectivement ça je ne le voulais pas.
En effet ce que je souhaiterai c'est de pouvoir faire une fonction pour laquelle je peux mettre une condition si le membre a été banni, il rentre donc ses bons identifiant mais malheureusement pour lui il a été banni sinon avec une condition dans la requète il ne pourra pas se connecter sans savoir pourquoi.
Alors je ne sais pas trop comment faire en fait, c'est un peu complexe si tu peux me donner quelques conseils
Merci beaucoup
en fait je souhaiterai faire quelque chose de similaire mais je n'arrive pas à l'incorporer dans mon script
if($result['actif']==0) { $erreur = "compte supprimé"; return $erreur; } else { return 'success'; }
Je ne comprend pas où tu bloques......
Ta portion de code semble être correcte... il te suffit de la mettre dans ton elseif...
Ta portion de code semble être correcte... il te suffit de la mettre dans ton elseif...
} elseif($result) { if($this->password == $result['password']) { if($result['actif']==0) { $erreur = "compte supprimé"; return $erreur; } else { return 'success'; } } 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é..."; return $erreur; } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Ben en fait je n'arrive pas à l'inclure à l'interieur pour que ça fonctionne.
Je ne comprend pas.
Ben en fait je n'arrive pas à l'inclure à l'interieur pour que ça fonctionne.
Je ne comprend pas.
Bonjour
Voici ma class complète
Voici ma class complète
<?php class Connexion_class { private $pseudo; private $password; private $actif; private $bdd; public function __construct($pseudo, $password, $actif) { $password = Security::hash($password); $this->pseudo = $pseudo; $this->password = $password; $this->actif = $actif; $this->bdd = bdd(); } public function Verif() { $requete = $this->bdd->prepare('SELECT * FROM tb_adherent WHERE pseudo = :pseudo'); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); if(empty($this->pseudo) || empty($this->password)) { $erreur = 'Veuillez remplir tous les champs'; return $erreur; } elseif($result) { if($this->password == $result['password']) { return 'success'; } 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é..."; return $erreur; } } 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é..."; return $erreur; } } public function Session() { $requete = $this->bdd->prepare('SELECT * FROM tb_adherent WHERE pseudo = :pseudo'); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); $_SESSION['id_adherent'] = $result['id_adherent']; $_SESSION['prenom'] = $result['prenom']; $_SESSION['pseudo'] = $this->pseudo; return 1; } } ?>
et voici mes vérifications
Merci vraiment de votre aide
<?php if(isset($_POST['pseudo']) AND isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $connexion = new Connexion_class($pseudo, $password, $actif); $verif = $connexion->Verif(); $verif = $connexion->Verif2(); if($verif == 'success') { if($connexion->Session()) { if(isset($_POST['remember'])) { $value = Security::crypt($verif->pseudo) . '_' . Security::crypt($verif->password); setcookie('mon_site', $value, time() + 3600 * 24 * 3); } } header('Location: index.php?body=compte_profil&type=compte'); } else { $erreur[] = $verif; } } if (isset($erreur)) { echo output_errors($erreur); } ?>
Merci vraiment de votre aide
Bonjour
J'ai créé une fonction pour les membres bannis
ma page de vérification
ça me parrait pas très organiser mais à priori les membres banni ne peuvent plus se connecter mais ça me retourne comme erreur success
Merci à vous de m'aider un peu.
J'ai créé une fonction pour les membres bannis
<?php class Connexion_class { private $pseudo; private $password; private $actif; private $bdd; public function __construct($pseudo, $password, $actif) { $password = Security::hash($password); $this->pseudo = $pseudo; $this->password = $password; $this->actif = $actif; $this->bdd = bdd(); } public function Verif() { $requete = $this->bdd->prepare('SELECT * FROM tb_adherent WHERE pseudo = :pseudo'); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); if(empty($this->pseudo) || empty($this->password)) { $erreur = 'Veuillez remplir tous les champs'; return $erreur; } elseif($result) { if($this->password == $result['password']) { return 'success'; } 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é..."; return $erreur; } } 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é..."; return $erreur; } } public function Banni() { $requete = $this->bdd->prepare('SELECT * FROM tb_adherent WHERE pseudo = :pseudo'); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); if($result['actif'] == 0) { $erreur = "Ton compte a été supprimé"; return $erreur; } else { return 'success'; } } public function Session() { $requete = $this->bdd->prepare('SELECT * FROM tb_adherent WHERE pseudo = :pseudo'); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); $_SESSION['id_adherent'] = $result['id_adherent']; $_SESSION['prenom'] = $result['prenom']; $_SESSION['pseudo'] = $this->pseudo; return 1; } } ?>
ma page de vérification
<?php if(isset($_POST['pseudo']) AND isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $connexion = new Connexion_class($pseudo, $password, $actif); $verif = $connexion->Verif(); $verif2 = $connexion->Banni(); if($verif == 'success' AND $verif2 == 'success') { if($connexion->Session()) { if(isset($_POST['remember'])) { $value = Security::crypt($pseudo) . '_' . Security::crypt($password); setcookie('cliquedecruet', $value, time() + 3600 * 24 * 3); } } header('Location: index.php?body=compte_profil&type=compte'); } else { $erreur[] = $verif; } } if (isset($erreur)) { echo output_errors($erreur); } ?>
ça me parrait pas très organiser mais à priori les membres banni ne peuvent plus se connecter mais ça me retourne comme erreur success
Merci à vous de m'aider un peu.
Bonjour,
Ta class pourrait plus ressembler à ça :
Et ta page de vérification :
Ta class pourrait plus ressembler à ça :
<?php class Connexion_class { private $pseudo; private $password; private $actif; private $bdd; public function __construct($pseudo, $password, $actif) { $password = Security::hash($password); $this->pseudo = $pseudo; $this->password = $password; $this->actif = $actif; $this->bdd = bdd(); } public function Verif() { if($this->isLoginPwdEmpty()){ $erreur = 'Veuillez remplir tous les champs'; } elseif($this->checkIfUserExist()) { if($this->password == $this->checkIfUserExist()) { if(!$this->Banni()){ $erreur = 'success'; // on créé les variables de session $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 { $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é..."; } return $erreur; } private function checkIfUserExist(){ $requete = $this->bdd->prepare('SELECT * FROM tb_adherent WHERE pseudo = :pseudo'); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); return ($result)?$result['password']:false; } private function isLoginPwdEmpty(){ return(empty($this->pseudo) || empty($this->password))?true:false; } private function Banni() { $requete = $this->bdd->prepare('SELECT * FROM tb_adherent WHERE pseudo = :pseudo'); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); return($result['actif'] == 0)?true:false; } private function Session() { $requete = $this->bdd->prepare('SELECT * FROM tb_adherent WHERE pseudo = :pseudo'); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); $_SESSION['id_adherent'] = $result['id_adherent']; $_SESSION['prenom'] = $result['prenom']; $_SESSION['pseudo'] = $this->pseudo; } } ?>
Et ta page de vérification :
<?php if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $connexion = new Connexion_class($pseudo, $password, $actif); $verif = $connexion->Verif(); if($verif == 'success') { if(isset($_POST['remember'])) { $value = Security::crypt($pseudo) . '_' . Security::crypt($password); setcookie('cliquedecruet', $value, time() + 3600 * 24 * 3); } header('Location: index.php?body=compte_profil&type=compte'); }else { echo output_errors($verif): } } ?>
Là.. tu nous redonnes juste le bout de code que tu veux mettre et la fonction que tu utilises....
Moi je te demande la class USER .. celle qui contient TOUTES tes méthodes (dont celles que je t'ai déjà aidé à faire ) !!
je vais faire mon chieur de service mais lorsque je lis cette fonction Verif(), ça m'arrache les yeux : )
Il est d'usage ( et même plus que ça ) que chaque fonction ai un point d'entrée et un de sortie, en gros, un seul return par fontion ...
cdt
C'est bien pour ça que je lui demande de nous redonner sa class complète car c'est ce que j'avais commencé à lui faire....