Merci pour cette info, j'ai réussi à me débarasser de mon erreur. Mais v'là autre chose que je ne puis comprendre.
Les trois fichiers ci-dessous fonctionnent très bien (désolé ce sera un peu long)
[b]index.php[/b]
<?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 ('acces_reserve', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT * 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_BOTH);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if (isset ($data[0])) {
session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['prenom'] = $data['prenom'];
header('Location: membre.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
else {
$erreur = 'Compte non reconnu.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head>
<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>
[b]membre.php[/b]
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: deconnexion.php');
exit();
}
?>
<html>
<head>
<title>Espace membre</title>
</head>
<body>
Bienvenue <?php echo htmlentities(trim($_SESSION['prenom'])); ?>! <br/>
<a href="deconnexion.php">Déconnexion</a>
</body>
</html>
[b]deconnexion.php[/b]
<?php
session_start();
session_unset();
session_destroy();
header('Location: index.php');
exit();
?>
ET ceux-là construits sur la base des précédents ne focntionnent pas
[b]accueil_espace_prive.php[/b]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- php -->
<?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 ('acces_reserve', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT * 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_BOTH);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if (isset ($data[0])) {
session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['prenom'] = $data['prenom'];
header('Location: membres_administrateurs.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
else {
$erreur = 'Compte non reconnu.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head>
<meta name="generator" content="HTML Tidy for Windows (vers 14 February 2006), see www.w3.org">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta name="author" content="François Acher et Thierry Becker">
<title> Bienvenue sur le site Maths/Sciences de l'académie
Nancy-Metz
</title>
<!-- Fonctions javascripts employées -->
<script type="text/javascript" src="javascripts/menu_deroulant.js">
</script>
<script type="text/JavaScript" src="javascripts/fond_png_transparent.js">
</script>
<!-- Styles css employés -->
<link rel="stylesheet" href="styles/mise_en_page_generale.css" type="text/css">
<link rel="stylesheet" href="styles/texte_page_de_texte.css" type="text/css">
</head>
<body style="background-image: url(images/fond-1.jpg);">
<!-- début de bannière -->
<div id="entete">
<?php include('permanents/titre.inc.html'); ?>
</div>
<!-- Fin bannière -->
<!-- Début menu -->
<div id="menu">
<?php include('permanents/menu.inc.html'); ?>
</div>
<!-- Fin du menu -->
<!-- Début zone de texte -->
<div id="texte">
<!-- Formulaire -->
<div id="contenu_page_de_texte">
<div class="image_de_titre">
<img src="images/fl-rouge-orange.gif">
</div>
<H1>CONNEXION A L'ESPACE ADMINISTRATEUR</H1>
<form action="membres_administrateurs.php" method="post">
<table>
<tr>
<td>Votre login :</td>
<td><input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"></td>
</tr>
<tr>
<td>Votre mot de passe :</td>
<td><input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"></td>
<tr>
<tr>
<td><input type="submit" name="connexion" value="Connexion"></td>
</tr>
</table>
</form>
</div>
<?php
if (isset($erreur)) { echo '<br /><br />',$erreur;}
?>
</div>
<div id="pied">
<?php include('permanents/pied.inc.html'); ?>
</div>
</body>
</html>
[b]membres_administrateurs.php[/b]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location:deconnexion.php');
exit();
}
?>
<html>
<head>
<meta name="generator" content="HTML Tidy for Windows (vers 14 February 2006), see www.w3.org">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta name="author" content="François Acher et Thierry Becker">
<title> Bienvenue sur le site Maths/Sciences de l'académie
Nancy-Metz
</title>
<!-- Fonctions javascripts employées -->
<script type="text/javascript" src="javascripts/menu_deroulant.js">
</script>
<script type="text/JavaScript" src="javascripts/fond_png_transparent.js">
</script>
<!-- Styles css employés -->
<link rel="stylesheet" href="styles/mise_en_page_generale.css" type="text/css">
</head>
<body style="background-image: url(images/fond-1.jpg);">
<!-- début de bannière -->
<div id="entete">
<?php include('permanents/titre.inc.html'); ?>
</div>
<!-- Fin bannière -->
<!-- Début menu -->
<div id="menu">
<?php include('permanents/menu.inc.html'); ?>
</div>
<!-- Fin du menu -->
<!-- Début zone de texte -->
<div id="texte">
Bienvenue <?php echo htmlentities(trim($_SESSION['prenom'])); ?>! <br/>
<a href="index.php">Déconnexion</a>
</div>
<div id="pied">
<?php include('permanents/pied.inc.html'); ?>
</div>
</body>
</html>
[b]deconnexion.php[/b]
<?php
session_start();
session_unset();
session_destroy();
header('Location: accueil_espace_prive.php');
exit();
?>
Mon problème est le suivant:
Lorsque je mets le login et le mot de passe, j'ai l'impression que quel que soit les données que j'entre, je fais une boucle page1 -> page2 -> page3 -> page1 sans m'arrêter et revenir au départ
Merci de votre aide
-- phpMyAdmin SQL Dump
-- version 2.10.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Mar 18 Novembre 2008 à 00:51
-- Version du serveur: 5.0.45
-- Version de PHP: 5.2.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Base de données: `acces_reserve`
--
-- --------------------------------------------------------
--
-- Structure de la table `membre`
--
CREATE TABLE `membre` (
`id` int(11) NOT NULL auto_increment,
`login` text NOT NULL,
`pass_md5` text NOT NULL,
`prenom` text NOT NULL,
`nom` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Contenu de la table `membre`
--