J'ai besoin de votre aide, j'ai un script qui utilise deux tables pour la connexion, formulaire banal (email et mot de passe), quand je rentre un identifiant qui n'existe pas dans la table, j'ai le message aucun résultat trouvé avec ce paramètre (ok) mais lorsque je veux me connecté avec un identifiant d'un des deux tables, aucun message d'erreur et rien ne se passe, aucune session créer et redirection non effectuer...
D'ou vient le problème ?
merci
<?php
session_start();
include('includes/haut.php');
include('includes/menu_g.php');
include('includes/menu_d.php');
?>
<div id="centre_page">
<?
$message_erreur = '';
$valid_connect = false;
// Si envoyé : TRAITEMENT DU FORMULAIRE DE CONNEXION (dans la même page que le formulaire !)
if(isset($_POST['envoie_connexion']))
{
$_SESSION['id'] = 0;
$_SESSION['level'] = 0;
// récupération des données envoyées
$email_recu = (isset($_POST['email']))? mysql_real_escape_string(trim($_POST['email'])) : '';
$password_recu = (isset($_POST['password']))? mysql_real_escape_string(trim($_POST['password'])) : '';
// on vérifie si le membre a bien son compte activé
if ($email_recu=='' || $password_recu=='' ) // Oublie d'un champ
{
$message_erreur = '<p>Vous devez remplir tous les champs</p>';
$valid_connect = false; // non
} else {
// 1/ recherche dans la table "clients"
$req_clients = "SELECT id, rang FROM vinicom_clients WHERE email = '".$email_recu."' AND password = '".md5($password_recu)."';";
$res_clients = mysql_query($req_clients) or die(mysql_error());
$nbr_clients = mysql_num_rows($res_clients); // nombre de lignes trouvées
if ($nbr_clients == 1){ // un client trouvé !
$row_clients = mysql_fetch_row($res_clients);
// enregistrement en SESSION
$_SESSION['id'] = $row_clients['id'];
$_SESSION['level'] = $row_clients['rang'];
$valid_connect = true; // ok
} else {
// 2/ recherche dans la table "fournisseurs"
$req_fournis = "SELECT id, rang FROM vinicom_fournisseurs WHERE email = '".$email_recu."' AND password = '".md5($password_recu)."';";
$res_fournis = mysql_query($req_fournis) or die(mysql_error());
$nbr_fournis = mysql_num_rows($res_fournis); // nombre de lignes trouvées
if ($nbr_fournis == 1){ // un fournisseur trouvé !
$row_fournis = mysql_fetch_row($res_fournis);
$_SESSION['level'] = $row_fournis['rang'];
// enregistrement en SESSION
$_SESSION['id'] = $row_fournis['id'];
$_SESSION['level'] = $row_fournis['rang'];
$valid_connect = true; // ok
} else { // ni client, ni fournisseur !
$message_erreur = '<p>Aucun résultat trouvé avec ces paramètres.</p>';
$valid_connect = false; // non
}
}
}
// redirection en fonction du rang
switch ($_SESSION['level']) {
case 1: // CLIENT
header('location : client.php');
break;
case 2: // FOURNISSEUR
header('location : fournisseur.php');
break;
case 3: // ADMIN
header('location : admin.php');
break;
case 0: // pas trouvé !
default: // par defaut
$valid_connect = false; // non
// on reste sur la page (affichage formulaire + message d'erreur)
}
} // fin traitement du formulaire.
?>
<?
// AFFICHAGE DU FORMULAIRE
if ($valid_connect === false)
{
?>
<h1>Connexion :</h1>
<?php // message d'erreur ?
if ($message_erreur != '') { ?>
<p><?php echo $message_erreur; ?></p>
<?php } ?>
<? echo'<b><a href="voirprofil.php?m='.intval($_SESSION['id']).'&action=consulter" style="color:ff40a0;text-decoration:none;">
'.stripslashes(htmlspecialchars($_SESSION['id'])).''; ?></b></a> -
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p>
<label for="idemail">Votre email : </label>
<input id="idemail" type="text" name="email" value=""/>
</p>
<p>
<label for="idpassword">Votre Mot de passe : </label>
<input id="idpassword" type="password" name="password" value=""/>
</p>
<p>
<input type="submit" name="envoie_connexion" value="envoyer"/>
</p>
</form>
<?php
} // fin affichage formulaire de connexion
?>
</div>
<? include('includes/bas.php'); ?>