session avec login et mot de passe
Bonjour à tous !
Excusez-moi mais j'espère ne pas me tromper de forum.
Je fais actuellement un site qui necessite une connexion à un espace membre. Dons j'ai essayé de faire une ouverture et fermeture de session avec login et mot de passe. Malheureusement mon code ne marche pas je ne sais pourquoi. Quand je l'éxécute, je n'ai aucun message. rien du tout. Aidez-moi s'il vous plaît !:cry:
Voici mon code :
1ère page : inscription.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
<?php
//on teste si le visiteur a soumis le formulaire
if(isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription')
{
// on teste l'existence des variables et on teste 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'])))
{
// on teste les deux mots de passe
if ($_POST['pass'] != $_POST['pass_confirm'])
{
$erreur = 'Les deux mots de passe ne sont pas identiques.';
}
else
{
$base = mysql_connect('localhost','root','');
mysql_select_db('serveur', $base);
// on 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 = 'Un membre possède déjà ce login.';
}
}
}
else
{
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inscription</title>
</head>
<body>
Inscription à l'espace membre : <br/>
<form action="inscription.php" method="post">
login : <input type="text" name="login" value="<?php if(isset($_POST['login'])) echo htmlentities(trim( $_POST['login'])); ?>"><br/>
mot de passe : <input type="password" name="pass" value="<?php if(isset($_POST['pass'])) echo htmlentities(trim( $_POST['pass'])); ?>"><br/>
confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if(isset($_POST['pass_confirm'])) echo htmlentities(trim( $_POST['pass_confirm'])); ?>"><br/>
<input type="submit" name="inscription" value="inscription">
</form>
<?php
if(isset($erreur)) echo'<br/>', $erreur;
?>
</body>
</html> |
2ème page : index.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
<?php
//on teste 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('serveur', $base);
// on recherche si une entrée de la base contient ce couple login/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 on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1)
{
session_start();
$_SESSION['login'] = $_POST['login'];
header ('location: membre.php');
exit();
}
//si on ne trouve aucune reponse, le visiteur s'est trompé soit dans son login soit dans son mot de passe
elseif ($data[0] == 0)
{
$erreur = 'Compte non valide. Réessayez!';
}
// Sinon, alors il y a un gro problème
else
{
$erreur = 'Problème dans la base de données : plusieurs champs ont le mm identifiants de connexion.';
}
}
else
{
$erreur = 'Au moins un des champs est vide !';
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Accueil</title>
</head>
<body>
Connexion à l'espace membre : <br/>
<form action="index.php" method="post">
login : <input type="text" name="login" value="<?php if(isset($_POST['login'])) echo htmlentities(trim( $_POST['login'])); ?>"><br/>
mot de passe : <input type="password" name="pass" value="<?php if(isset($_POST['pass'])) echo htmlentities(trim( $_POST['pass'])); ?>"><br/>
<input type="submit" name="Connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php
if(isset($erreur)) echo'<br/><br/>', $erreur;
?>
</body>
</html> |
3ème page : membre.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
<?php
session_start();
if(!isset($_SESSION['login']))
{
header ('location: index.php');
exit();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Espace membre</title>
</head>
<body>
Bienvenue <?php echo htmlentities(trim($_SESSION['login']));?>!<br/>
<a href="deconnexion.php">Déconnexion</a>
</body>
</html> |
4 ème page : deconnexion.php
Code:
1 2 3 4 5 6 7 8
|
<?php
session_start();
session_unset();
session_destroy();
header ('location: index.php');
exit();
?> |
Merci de votre compréhension