Prb de mot de passe administrateur

Fermé
AichatouLaminouIssa - 22 avril 2022 à 12:11
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 - 22 avril 2022 à 21:45
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
A voir également:

2 réponses

jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
22 avril 2022 à 12:14
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
AichatouLaminouIssa
22 avril 2022 à 12:41
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
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
22 avril 2022 à 21:45
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