le 11/04/2008 à 15:24
Problème d'ouverture de session
Bonjour,
Après avoir suivis le "Comment faire" à propos de la création d'un espace membre, j'ai un petit soucis au niveau de l'ouverture de session.
En effet, une fois avoir créer un nouveau compte (Inscription.php), j'accède directement à l'espace membre (membre.php) sans aucun soucis mais quand je me déconnecte et essaye de me reconnecter avec le pseudo et le mot de passe que je viens de créer rien ne ce passe et je reste sur la page d'accueil...
Je vous met ci-dessous mes codes php :
Accueil.php
Inscription.php
Membre.php
Merci de bien vouloir m'éclairer sur mon problème.
Après avoir suivis le "Comment faire" à propos de la création d'un espace membre, j'ai un petit soucis au niveau de l'ouverture de session.
En effet, une fois avoir créer un nouveau compte (Inscription.php), j'accède directement à l'espace membre (membre.php) sans aucun soucis mais quand je me déconnecte et essaye de me reconnecter avec le pseudo et le mot de passe que je viens de créer rien ne ce passe et je reste sur la page d'accueil...
Je vous met ci-dessous mes codes php :
Accueil.php
<?php
// test : si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('mysql', $base);
// teste si une entrée de la base contient le login et le pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: Membre.php');
exit();
}
// si aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu !';
}
// sinon, il y a un problème
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Il manque un champs !';
}
}
?>
Inscription.php
<?php
// test : si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
// teste de l'existence de nos variables et si elles ne sont pas vides
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
// test des deux mots de passe
if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = 'Les 2 mots de passe sont différents.';
}
else {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('mysql', $base);
// recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: Membre.php');
exit();
}
else {
$erreur = 'Login déjà pris !';
}
}
}
else {
$erreur = 'Il manque un champs !';
}
}
?>
Membre.php
<?php
session_start();
if (!isset($_SESSION['login'])){
header('Location: Accueil.php');
exit();
}
?>
Merci de bien vouloir m'éclairer sur mon problème.