J'ai donc une table dans ma base de données qui se nomme access_login. avec comme champs un login, une id, un code client et un pass_md5
Le soucis après cela c'est que j'ai essayé de faire plusieurs test pour savoir si les entrées login et mdp du formulaire de connexion correspondait à des entrées (ou plutôt une entrée) de la base de donnée jusque la je pense m'en être bien sorti, voici donc le code du formulaire:
<form action="#" method="post"> <fieldset>
<legend>Login Accès</legend>
<label for="login">Login:</label><input value="" type="text" placeholder="[email protected]" name="login" /> <label for="pass_md5">Pass: </label><input value="" type="password" placeholder="password" name="pass_md5" /><p align="right"><input type="image" src="images/key.png" /></p>
<a href="index.php?p=reset_password"> <img src="images/question_blue.png" width="16" height="16" /></a> <a href="index.php?p=reset_password">Mot de Passe oublié ?</a> </fieldset> </form>
<?php
if (isset($erreur)) echo '',$erreur;
?>
et le code php que j'ai mis avant la balise HTML et même la doctype:<?php require_once('Connections/localhost.php'); ?><?php mysql_select_db( $database_localhost ); ?>
<?php
if(isset($_POST['login'])) { $sql="SELECT `login`, `pass_md5`,`categorie` FROM `access_login` WHERE `login` ='".mysql_real_escape_string($_POST['login'])."'";
$result= mysql_query($sql) or die(__LINE__.mysql_error().$sql);
$num_rows = mysql_num_rows($result);
$data=mysql_fetch_assoc($result);
if($num_rows=="0"){ $erreur='
<div id="fa">
<div class="fa_close"><a href="#" onclick="hFa()"><img src="images/close1.jpg" /></a></div>
<div class="error"><h4>Erreur: Compte client non reconnu</h4>Nous vous invitons à vérifier vos identifiants, si le message revient n\'hésitez pas à contacter l\'administrateur du site en cliquant ici <a href="mailto:[email protected]"><img src="images/administrator.png" /></a></div>
</div>'; }
if($num_rows>"1"){ $erreur='<div id="fa">
<div class="fa_close"><a href="#" onclick="hFa()"><img src="images/close1.jpg" /></a></div>
<div class="warning"><h4>Warning: Compte client associé à plusieurs utilisateurs</h4>Veuillez s\'il vous plaît contacter l\'administrateur du site en cliquant ici <a href="mailto:[email protected]"><img src="images/administrator.png" /></a></div>
</div>';}
if($num_rows=="1"){ if(md5($_POST['pass_md5'])!=$data['pass_md5']) { $erreur='<div id="fa">
<div class="fa_close"><a href="#" onclick="hFa()"><img src="images/close1.jpg" /></a></div>
<div class="error"><h4>Erreur: Mot de passe incorrect</h4>Nous vous invitons à vérifier vos identifiants. Si ce message persiste, vous pouvez réinitialiser votre mot de passe en cliquant ici <a href="index.php?p=reset_password"><img src="images/password.png" /></a></div>
</div>';}
if((md5($_POST['pass_md5']))==$data['pass_md5'] AND $data['categorie']=="client"){ $_SESSION['login'] = $_POST['login']; session_start(); header('location:client/'); }
}
if((md5($_POST['pass_md5']))==$data['pass_md5'] AND $data['categorie']=="admin"){ $_SESSION['login'] = $_POST['login']; session_start(); header('location:admin/'); }
}
?>
le soucis c'est que je suis bien redirigé, mais quand j'arrive sur la page vers laquelle je suis redirigé, je suis à nouveau redirigé vers le formulaire de connexion, en fait je crois que la variable session login n'est pas transmise, je ne sais pas pourquoi.voici le code de ma page qui reçoit le visiteur qui s'est logué
<?php
session_start();
// on vérifie toujours qu'il s'agit d'un membre qui est connecté
if (!isset($_SESSION['login'])) {
// si ce n'est pas le cas, on le redirige vers l'accueil
header ('Location: ../index.php');
exit();
}
?>
<?php require_once('Connections/localhost.php'); ?><?php mysql_select_db( $database_localhost ); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"[]>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="fr-FR" xml:lang="fr">
Je ne sais pas d'ou cela provient, en fait je sais que la variable de session n'est pas transmise, car j'ai un var_dump session qui affiche null.mais je ne comprends pas pourquoi car je l'ai bien déclarer avant de rediriger le visiteur.
Par avance merci pour votre aide.