Connexion PHP
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 un fichier de connexion avec des SESSIONs pour la gestion du site.
Je viens de m'apercevoir de quelque chose de très bizarre.
Lorsque j'octroie une SESSION à un membre pour la gestion d'une responsabilité, donc c'est simplement des checkbox tout fonctionne bien à l'exception que ça modifie le mot de passe du membre auquel je lui est donné une permission, donc il ne peut plus se connecter, je ne sais pas si mes explication on été assez explicite.
Je vous remercie si vous pouvez me donner la main à résoudre ce malheureux problème qui me pourrit le site.
Voici mon fichiers des fonctions
Merci
voici mon fichier qui appel les fonctions
J'ai un fichier de connexion avec des SESSIONs pour la gestion du site.
Je viens de m'apercevoir de quelque chose de très bizarre.
Lorsque j'octroie une SESSION à un membre pour la gestion d'une responsabilité, donc c'est simplement des checkbox tout fonctionne bien à l'exception que ça modifie le mot de passe du membre auquel je lui est donné une permission, donc il ne peut plus se connecter, je ne sais pas si mes explication on été assez explicite.
Je vous remercie si vous pouvez me donner la main à résoudre ce malheureux problème qui me pourrit le site.
Voici mon fichiers des fonctions
Merci
<?php class Connexion_class { private $pseudo; private $password; private $fin; private $bdd; public function __construct($pseudo, $password, $fin) { $password = Security::hash($password); $this->pseudo = $pseudo; $this->password = $password; $this->fin = $fin; $this->bdd = bdd(); } private function ChampsVide() { return(empty($this->pseudo) || empty($this->password)) ? true : false; } private function PseudoExist() { $sql = "SELECT * FROM tb_adherent WHERE pseudo = :pseudo AND fin = 0"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $donnees = $requete->fetch(); return ($donnees) ? $donnees['password'] : false; } private function Banni() { $sql = "SELECT * FROM tb_adherent WHERE pseudo = :pseudo AND fin = 0"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $donnees = $requete->fetch(); return($donnees['fin'] == 1) ? true : false; } private function Session() { $sql = "SELECT * FROM tb_gestion_site INNER JOIN tb_adherent ON tb_adherent.id_adherent = tb_gestion_site.rid_adherent WHERE pseudo = :pseudo AND fin = 0"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $donnees = $requete->fetch(); $_SESSION['id_adherent'] = $donnees['id_adherent']; $_SESSION['prenom'] = $donnees['prenom']; $_SESSION['pseudo'] = $this->pseudo; $_SESSION['gestion_membre'] = $donnees['gestion_membre']; $_SESSION['gestion_repetition'] = $donnees['gestion_repetition']; $_SESSION['gestion_sortie'] = $donnees['gestion_sortie']; $_SESSION['gestion_calendrier'] = $donnees['gestion_calendrier']; $_SESSION['gestion_repertoire'] = $donnees['gestion_repertoire']; $_SESSION['gestion_responsable'] = $donnees['gestion_responsable']; $_SESSION['gestion_recompense'] = $donnees['gestion_recompense']; $_SESSION['effectif_sortie'] = $donnees['effectif_sortie']; $_SESSION['liste_membre'] = $donnees['liste_membre']; } public function VerifConnexion() { if($this->ChampsVide()) { $erreur = 'Veuillez remplir tous les champs'; } else if($this->PseudoExist()) { if($this->password == $this->PseudoExist()) { 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 { $erreur = 'Ce compte n\'existe pas'; } return $erreur; } } ?>
voici mon fichier qui appel les fonctions
<?php if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $fin = isset($_POST['fin']) ? $_POST['fin'] : ''; $Connexion = new Connexion_class($pseudo, $password, $fin); $VerifConnexion = $Connexion->VerifConnexion(); if($VerifConnexion == 'success') { redir("./index.php?body=compte_profil&type=compte"); } else { $erreur_info[] = $VerifConnexion; } } if (isset($erreur_info)) { echo erreurs($erreur_info); } ?>
A voir également:
- Connexion PHP
- Gmail connexion - Guide
- Connexion chromecast - Guide
- Gmail connexion autre compte - Guide
- Site inaccessible n'autorise pas la connexion - Guide
- Connexion sctr - Forum Discord
5 réponses
Bonjour,
Je ne vois pas la partie avec les checkbox ....
De plus... quelle est la partie du code, selon toi, qui pose problème ?
Je ne vois pas la partie avec les checkbox ....
De plus... quelle est la partie du code, selon toi, qui pose problème ?
Bonjour
En fait je suis dessus toute l'après midi et je viens de m'apercevoir que j'ai fait une grosse boulette, manque d'attention j'ai rectifié mon erreur et tout fonctionne normalement pour la connexion.
Mais quelque chose de moins grave mais que j'aimerai quand même pouvoir résoudre. En fait j'ai 4 conditions pour pouvoir se connecter.
1 Veuillez remplir tous les champs
2 Ton compte a été supprimé (pour les membres démissionnaires)
3 Mauvais mot de passe...ou Mauvais login
4 Ce compte n\'existe pas
Pour un membre qui quitte l'association il y a la fonction "Banni" c'est à dire que son compte a été supprimé, mais cette condition ne fonctionne pas. Pourtant pour les membres démissionnaires je retourne bien "fin == 1". cela concerne la fonction Banni je devrais rentrer dans cette condition si le membre est banni
S'il te plait tu peux jeter un œil sur les conditions et me dire ce que tu en penses.
Je te remercie
En fait je suis dessus toute l'après midi et je viens de m'apercevoir que j'ai fait une grosse boulette, manque d'attention j'ai rectifié mon erreur et tout fonctionne normalement pour la connexion.
Mais quelque chose de moins grave mais que j'aimerai quand même pouvoir résoudre. En fait j'ai 4 conditions pour pouvoir se connecter.
1 Veuillez remplir tous les champs
2 Ton compte a été supprimé (pour les membres démissionnaires)
3 Mauvais mot de passe...ou Mauvais login
4 Ce compte n\'existe pas
Pour un membre qui quitte l'association il y a la fonction "Banni" c'est à dire que son compte a été supprimé, mais cette condition ne fonctionne pas. Pourtant pour les membres démissionnaires je retourne bien "fin == 1". cela concerne la fonction Banni je devrais rentrer dans cette condition si le membre est banni
S'il te plait tu peux jeter un œil sur les conditions et me dire ce que tu en penses.
Je te remercie
Salut,
Ta requête dans la fonction Banni n'est pas correcte :
tu récupères les infos du pseudo spécifié pour lequel le champ fin est égal à 0, donc ta fonction ne te retournera jamais de résultat si le pseudo spécifié a un champ fin égal à 1.
Ta requête devrait plutôt s'écrire :
Bonne journée,
Ta requête dans la fonction Banni n'est pas correcte :
SELECT * FROM tb_adherent WHERE pseudo = :pseudo AND fin = 0
tu récupères les infos du pseudo spécifié pour lequel le champ fin est égal à 0, donc ta fonction ne te retournera jamais de résultat si le pseudo spécifié a un champ fin égal à 1.
Ta requête devrait plutôt s'écrire :
SELECT fin FROM tb_adherent WHERE pseudo = :pseudo
Bonne journée,
Bonjour
Merci pour ta réponse malheureusement je n'entre toujours pas dans la condition si fin d'un pseudo est égal 1.
en faisant comme ça je ne comprends pas pourquoi ça ne marche pas
Ca rentre dans cette condition Ce compte n'existe pas au lieu de Ton compte a été supprimé
Merci de ton aide
Merci pour ta réponse malheureusement je n'entre toujours pas dans la condition si fin d'un pseudo est égal 1.
en faisant comme ça je ne comprends pas pourquoi ça ne marche pas
Ca rentre dans cette condition Ce compte n'existe pas au lieu de Ton compte a été supprimé
private function Banni() { $sql = "SELECT * FROM tb_adherent WHERE pseudo = :pseudo AND fin = 1"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $donnees = $requete->fetch(); return($donnees['fin'] == 1) ? true : false; }
Merci de ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Je n'arrive pas à comprendre pourquoi ça ne fonctionne pas
Merci pour ton aide
Je n'arrive pas à comprendre pourquoi ça ne fonctionne pas
private function Banni() { $sql = "SELECT fin FROM tb_adherent WHERE pseudo = :pseudo"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $donnees = $requete->fetch(); return($donnees['fin'] == 1) ? true : false; }
Merci pour ton aide