Voila le code de mon espace membre index.php :
<?php session_start(); ?>
<html>
<body>
...
<?php
if(isset($_SESSION['identifiant']))
{
include ('contenu_protege.php');
}
else
{
if($ident!="right")
{
include ('login.php');
}
else
{
include ('contenu_protege.php');
}
}
?>
...
</body>
</html>
La partie php est sensée afficher soit le formulaire d'identification si on est pas loggué, soit le contenu protégé si l'identification est correcte ou si une session a débuté. Voici le script ident.php chargé de traiter le login / mot de passe pour identification:
<?php
if (empty( $_POST['identifiant']) || empty( $_POST['motdepasse']))
{
header("Location: index.php?ident=wrong");
}
else
{
require ('inc/config.php');
mysql_connect($serveur,$login,$pass);
mysql_select_db ($base);
$sql = "select pwd from membres where login='".$_POST['identifiant']."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pwd'] == $_POST['motdepasse'])
{
$expire = 365*24*3600;
setcookie("identifiant",$_POST['identifiant'],time()+$expire);
setcookie("motdepasse",$_POST['motdepasse'],time()+$expire);
$_SESSION['identifiant'] = $identifiant;
header("Location: index.php?id&ident=right");
}
else
{
header("Location: index.php?ident=wrong");
}
}
?>
Tout fonctionne, sauf lorsque je quitte la page index avec contenu protégé et que je souhaite revenir dessus, je suis obligé de m'identifier à nouveau (alors qu'en théorie la session est ouverte).Pourquoi ?