Connexion PHP
                    
        
     
             
                    papyclic
    
        
    
                    Messages postés
            
                
     
             
            451
        
            
                                    Statut
            Membre
                    
                -
                                     
papyclic Messages postés 451 Statut Membre -
        papyclic Messages postés 451 Statut Membre -
        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
- Meetic dernière connexion ✓ - Forum Réseaux sociaux
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
