Prb de mot de passe administrateur

AichatouLaminouIssa -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'aimerais avoir votre aide, j'ai un soucis avec mon interface de connexion c'est à dire l'interface qui permet d’accéder à une autre interface. Quand je saisie le compte et le mot de passe qu'ils soient correcte ou incorrect j'accède à l'autre interface.

Configuration: Windows / Firefox 91.0

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    Pour pouvoir te venir en aide ... il va falloir que tu nous montres le code concerné par ta question !

    NB: Pour poster du code sur le forum, tu devras utiliser les balises de code.
    Explications ( à lire ENTIEREMENT !! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
    0
  2. AichatouLaminouIssa
     
    Voici le code
    
    extract($_POST);
    if(!empty($_POST['co'])){
    
    	require_once('cn.php');
    	$re=$cn->prepare("SELECT ida,cmp,mdp,prof FROM adminis WHERE cmp=? AND mdp=? AND prof=?");
    	$re->execute([$compte,$motdepasse,$profil]);
    	$tab=$re->fetch();
    
    	if ($compte == $tab['cmp'] && $motdepasse == $tab['mdp'] && $profil==$tab['prof']){
    		session_start();
    		$_SESSION['compte']=$tab['cmp'];
    		$_SESSION['profil']=$tab['prof'];
    
    		header('location:ins_gestion.php');
    	}else{
    		header('location:index_gestion.php?msg=1');
    	}
    } 
    
    ?>
    
    <!DOCTYPE html>
    <html>
    <head>
    	<title>Gestion</title>
    	<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
    	<script type="text/javascript" src="js/jquery.js"></script>
    	<script type="text/javascript" src="js/bootstrap.js"></script>
    </head>
    <body>
    <div class="container">
    	<div class="row"><br>
    		<div class="col-md-6 col-md-offset-3">
    			<div class="panel panel-primary">
    				<div class="panel-heading">
    					<div align="center">
    						<i class="glyphicon glyphicon-user"></i> Authentification
    					</div>
    				</div>
    				<div class="panel-body">
    						<form class="form-horizontal" action="" method="POST" style="padding-top: 30px;">
    
    						<?php if(isset($_GET['msg'])){?>
    							<?php if($_GET['msg'] == 1){?>
    						<div class="alert alert-danger alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true"> × </button>Compte ou mot de passe est incorrect !</div>
    						<?php } ?>
    						<?php } ?>
    						<div class="input-group"><span class="input-group-addon" id= "sizing-addon1"><span class="glyphicon glyphicon-user"></span></span><input type="text" name="cmp" class="form-control" placeholder="compte utilisateur" required></div><br>
    						<div class="input-group"><span class="input-group-addon" id="sizing-addon1"><span class="glyphicon glyphicon-lock"></span></span><input type="password" name="mdp" class="form-control" placeholder="mot de passe" required></div><br>
    						<select class="form-control" name="profil"><option value="" selected="selected">Selectionner profil</option><option value="0" required>Administrateur</option>
    						<option value="1" required>utilisateur simple</option></select><br>
    						<button type="submit" name="co" value="co" class="btn btn-primary btn-block"><i class="glyphicon glyphicon-log-in"></i> Connexion</button>
    						</form><br>
    					</div>
    			</div>
    		</div>
    	</div>
    </div>
    </body>
    </html>
    
    
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Bonjour,

      Il faudrait nous dire ce que tu entends pas : "qu'ils soient correcte ou incorrect j'accède à l'autre interface."
      C'est quoi .. l'autre interface ?
      D'ailleurs, as tu mis en place une vérification sur cette autre interface pour vérifier que tes variables de sessions existent et sont bien remplies ?
      Et puis.. vu que tu as déjà du faire pleins de tests .. as tu supprimé les variables de session avant de refaire tes tests ? car sinon elles existent déjà... et donc c'est normal que tu accèdes à l'autre page...

      Quoi qu'il en soit, voici ton code légèrement revu et corrigé
      
      //Toujours mettre le session_start AU DEBUT de ton fichier
      session_start();
      
      //A mettre en place pour gérer les éventuels soucis de requêtes en PDO
      // http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
      require_once('cn.php');
      
      
      extract($_POST);
      
      if(!empty($_POST['co'])){
        try{
      	  $re = $cn->prepare("SELECT ida,cmp,mdp,prof FROM adminis WHERE cmp=? AND mdp=? AND prof=?");
      	  $re->execute([$compte,$motdepasse,$profil]);
      	  $tab = $re->fetch();
        }catch(Exception $e){
           echo "Erreur " . $e->getMessage();
        }
      	if (!empty($tab)){
      		
      		$_SESSION['compte']=$tab['cmp'];
      		$_SESSION['profil']=$tab['prof'];
      
      		header('location:ins_gestion.php');
          exit;
      	}else{
      		header('location:index_gestion.php?msg=1');
          exit;
      	}
        
      }


      Au passage, pour éviter de mélanger les données ( et pouvoir les supprimer plus facilement si besoin), je stockerai les données de l'utilsiateur dans un sous-array de tes sessions.. comme ceci
      	if (!empty($tab)){
      		$_SESSION['user'] = [];
      		$_SESSION['user']['compte']=$tab['cmp'];
      		$_SESSION['user']['profil']=$tab['prof'];
              $_SESSION['user']['id']=$tab['ida'];
      
      		header('location:ins_gestion.php');
          exit;
      
      0