Salut à tous.
Je viens de créer le script espace_membre démontré dans "le comment faire", mais voilà que j'ai un souci malgrès des explication très bien faites.
En faite j'ai un probléme dans la session je penses, en effet quand je me logue il me met bien le nom de la personne logué dans la page membre. Mais si je vais dans une page contenu dans un repertoire par exemple : "http://127.0.0.1/logiciel/repert/" ben quand je revient sur la page membre qui se situ dans : " http://127.0.0.1/logiciel/" il me mais en nom de login "root".
Je n'arrive pas à savoir de ou vient l'erreur.
Voici le code :
page index :
<?php
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 ('espace_membre', $base);
$sql = 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données :
plusieurs membres ont les mêmes identifiants
de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head>
<title>Accueil</title>
</head>
<body>
<h3><p style="text-align: center; font-family: 'times new roman">
Connexion à
votre compte de gestion<p></h3>
<hr width="50%"><br>
<center>
<table width="400">
<tr>
<td>
<form action="index.php" method="post">
Login :
</td>
<td>
<input type="text" name="login" value="
<?php if (isset($_POST['login']))
echo stripslashes(htmlentities(trim($_POST['login']))); ?>">
</td>
</tr>
<tr>
<td>
Mot de passe :
</td>
<td>
<input type="password" name="pass" value="
<?php if (isset($_POST['pass']))
echo stripslashes(htmlentities(trim($_POST['pass']))); ?>">
</td>
</tr>
<tr>
<td colspan="2">
<center><br><input type="submit" name="connexion"
value="Connexion"></center>
</form>
</td>
</tr>
</table>
</center>
<hr width="50%">
<center><a href="inscription.php">Vous inscrire</a></center>
<?php
if (isset($erreur)) echo '',$erreur;
?>
</body>
</html>
page membre :
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}
?>
<html>
<head>
<title>Espace membre</title>
</head>
<body>
<h3><p style="text-align: center; font-family: 'times new roman">Bienvenue
<?php echo htmlentities(stripslashes(trim($_SESSION['login']))); ?><p></h3>
<p>Accéder aux outils : </p>
<a href="repertoire_tel/index.php">Annuaire téléphonnique</a>
<br>
<a href="deconnexion.php">Déconnexion</a>
</body>
</html>
Et sur les page contenu dasn un repertoire je met ce code-ci en debut de page :
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: /logiciel/index.php');
exit();
}
?>
Merci