Probléme en code php
syrine01
Messages postés
44
Date d'inscription
Statut
Membre
Dernière intervention
-
syrine01 Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
syrine01 Messages postés 44 Date d'inscription Statut Membre Dernière intervention -
Bonsoir
j'ai réalisé une page login qui permet de faire une redirection vers 2 pages
si le il est admin donc le redirection vers la page " index_admin.php
si non vers la page index_emp.php ( simple employé)
pour faire cette différenciation j'ajouter une colonne groupe dans la table "login" ce dernier représente " admin et employe" pour chaque utilisateur
Mon probléme que le redirection ne fait pas et il affiche toujours ce msg ; "le nom ou le password n'est pas correcte "
voila le code :
merci :)
j'ai réalisé une page login qui permet de faire une redirection vers 2 pages
si le il est admin donc le redirection vers la page " index_admin.php
si non vers la page index_emp.php ( simple employé)
pour faire cette différenciation j'ajouter une colonne groupe dans la table "login" ce dernier représente " admin et employe" pour chaque utilisateur
Mon probléme que le redirection ne fait pas et il affiche toujours ce msg ; "le nom ou le password n'est pas correcte "
voila le code :
<?php
include('config.php');
$erreur='';
//pour faire une session(direction vers une autre page)
if(isset($_POST['submit'])) // clique sur bouton" submit" et les mé varialbles de bd
{
$login= htmlspecialchars(trim($_POST['login'])); //"htmlspecialchars"-> pour la sécurité et "trim" pour mettre les espace
$password= htmlspecialchars(trim($_POST['password']));
$log= mysql_query("SELECT * FROM login WHERE login='$login' AND password='$password'") or die("<b>erreur : le nom ou le password n'est pas correcte </b>");
$rows = mysql_num_rows($log); // faire le test sur"$log"
// si on obtient une réponse, alors l'utilisateur est un membre
if ($rows== 1)
{
// stockés le login dans la session idf
$ligne=mysql_fetch_array($log);
$_SESSION['login']=$ligne['login'];
$_SESSION['idf']=$ligne['id_login'];
$_SESSION['groupe']=$groupe['groupe'];
if ( $_SESSION['login'] = $_POST['login'])
{
if($groupe['groupe']=="admin")
{
header('index_admin.html'); // redirection vers une autre page
exit();
}
else
{ header('Location:index_emp.html');}
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
}
elseif ($rows== Null) {
$erreur = 'Compte non reconnu! vérifier votre login et password'; // le "elseif " pour vérifie si le nom et le password sont correctes avec BD
}
// sinon, probléme BDD
else {
$erreur = 'Probéme dans la base de données : plusieurs membres ont les mémes identifiants de connexion.'; }
}
?>
<html>
<head>
<meta charset="utf-8" />
<title>login</title>
<link rel="stylesheet" href="assets/css/styles.css" />
<script type="text/javascript" src=""></script>
</head>
<body>
<?php if(isset($erreur) !='') echo $erreur;?>
<div id="formContainer">
<form id="login" method="post" action="">
<input type="text" name="login" id="Nom" onFocus="if(this.value=='Nom'){this.value=''}" onblur="if(this.value==''){ (this.value='Nom')}" value="Nom" />
<input type="password" name="password" id="loginPass" onfocus="if(this.value=='pass'){this.value=''}" onblur="if(this.value==''){ (this.value='pass')}" value="pass"/>
<input type="submit" name="submit" value="Entrer" />
</form>
</div>
<footer>
</footer>
</body>
</html>
merci :)
A voir également:
- Probléme en code php
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
4 réponses
Bonjour
Tu n'as pas compris le sens du "or die"
Si tu vois le message d'erreur, ça ne veut pas dire que l'utilisateur s'est trompé dans le login ou le mot de passe, ça veut dire que ta requête (ou ta connexion) est incorrecte.
Pour connaître la cause de l'erreur, écris plutôt :
$log= mysql_query("SELECT * FROM login WHERE login='$login' AND password='$password'") or die("<b>erreur : le nom ou le password n'est pas correcte </b>");
Tu n'as pas compris le sens du "or die"
Si tu vois le message d'erreur, ça ne veut pas dire que l'utilisateur s'est trompé dans le login ou le mot de passe, ça veut dire que ta requête (ou ta connexion) est incorrecte.
Pour connaître la cause de l'erreur, écris plutôt :
$log= mysql_query("SELECT * FROM login WHERE login='$login' AND password='$password'") or die(mysql_error());
or die("<b>erreur : le nom ou le password n'est pas correcte </b>"); --> ca marche bien mais lorsqu'il affiche ce message c'est a dire le probléme se trouve dans le requete et non pas "or die" !
Puisque tu sembles comprendre (?) que lke problème est dans ta requête:
1- pourquoi afficher que c'est le login ou le mot de passe qui sont incorrects, alors qu'ils n'y sont pour rien ?
2 - pourquoi ne pas afficher le mysql_error() comme je te l'ai indiqué, pour avoir la véritable cause de l'erreur ?
1- pourquoi afficher que c'est le login ou le mot de passe qui sont incorrects, alors qu'ils n'y sont pour rien ?
2 - pourquoi ne pas afficher le mysql_error() comme je te l'ai indiqué, pour avoir la véritable cause de l'erreur ?