je vais essayer de vous presenter mon probleme.
Quand un membre s'identifie j'ouvre une session
Code : PHP <?php
session_start ();
include "../Dossier/connect_EP.php";
$user=
addslashes(
htmlspecialchars($_POST['user']));
$passw=
addslashes(
htmlspecialchars($_POST['passw']));
// verif mot de passe dans table utilisateur
$sql = "SELECT COUNT(*) AS membre FROM utilisateurs WHERE user='".$user."' AND passw='".$passw."'";
//echo $sql;
$retour =
mysql_query($sql);
$donnees =
mysql_fetch_array ($retour);
$count = $donnees['membre'];
if ($count == 1)
{
//est
// session_start(); // on ouvre la session
$_SESSION ['user'] = $user;
$_SESSION['passw'] = $passw;
$_SESSION['logged'] = true;
$var = '<b>Bienvenue </b>'.$user;
$_COOKIE['user'] = $user;
}
else
{
$var = '<b>Vous n\'avez pas été identifié<br><br></b><a href="index.php">Retour</a>'; // le login n'a pas été reconnu
}
// si la case souvenir est cochée
if (
isset ($_POST['souvenir']))
{
$expire =
time() + 3600*24*365;
setcookie ('user', $user , $expire);
setcookie ('passw', $passw, $expire);
}
mysql_close();
?>
pour se deconnecter c'est ca (fichier complet):Code : PHP <?php
session_start();
session_destroy();
unset ($_SESSION['logged'], $_SESSION['user']);
// Suppression variables de session
setcookie ('user','',
time () - 3600);
setcookie ('passw','',
time () - 3600);
// suppression cocckies
$_SESSION['logged'] = false;
header ("location: ../index.php");
?>
dans mon fichier index, je teste les cookies ,pour le rappel du membreCode : PHP <?php
session_start();
echo 'logged : '.$_SESSION['logged'];
//test
echo '<br>cookie user'.$_COOKIE['USER'];
echo '<br>session user'.$_SESSION['user'];
//$_SESSION['logged'] = false;
// identification membre memorisé
if (
empty ($_COOKIE['user']) &&
empty ($_COOKIE['passw']))
{
$_SESSION['logged'] = true;
$_SESSION['user'] = $_COOKIE['user'];
$_SESSION['passw'] = $_COOKIE['passw'];
echo '<strong><div align="center">bienvenu'.$_SESSION['user'].'</div></strong>';
}
//elseif (!empty ($_SESSION['user']
?>
dans mon fichier index, j'inclue des menus (affichage différent si membre ou pas)Code : PHP include 'menu_haut.php';
echo'<br>';
include 'menu bas.php';
voici les fichiers :
menu_haut.phpCode : PHP <table width="160" border="0" align="center">
<?php
echo 'logged='.$_SESSION['logged'].'<br>';
if ($_SESSION['secu'] == 'secure' && $_SESSION['logged'] == true)
{
echo '
<tr>
<td><b>Admin</b><br>
<br></td>
</tr>
<tr>
<td><a href="Admin/liste.php">liste des membres </a></td>
</tr>
<tr>
<td><a href="Admin/messages.php">messages reçus</a> </td>
</tr>
<tr>
<td><a href="Admin/aff_actus.php">affichage des actualités </a></td>
</tr>
<tr>
<td><a href="Admin/inscription.php">inscrire un membre </a></td>
</tr>';
}
?>
<tr>
<td><b>Pricil</b><br><br></td>
</tr>
<tr>
<td><a href="index.php">Accueil</a></td>
</tr>
<tr>
<td><a href="Pages/association.php">L'association</a></td>
</tr>
<tr>
<td><a href="Pages/charte.php">Notre charte</a> </td>
</tr>
<tr>
<td><a href="Pages/loi_905.php">Loi 1905</a> </td>
</tr>
<tr>
<td><a href="Pages/lettre_ferry.php">Lettre de Jules Ferry</a> </td>
</tr>
<tr>
<td><a href="Pages/calendrier.php">Notre calendrier</a> </td>
</tr>
</table>
menu_bas.phpCode : PHP <table width="160" border="0">
<tr>
<td><b>Menu</b><br><br></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>Forum</td>
</tr>
<tr>
<td><a href="Pages/actualite.php">Actualité</a>s</td>
</tr>
<tr>
<td><a href="Pages/archives.php">Archives</a></td>
</tr>
<?php
if ($_SESSION['logged'] == true)
{
?>
<tr>
<td>
<?php
echo '<a href="Membres/actualite_ajout.php">Ajouter une actualité</a><td>';
echo '</tr><tr><td><a href="Membres/article_depot.php">Poster un article</a></td>';
echo '</tr><tr><td><a href="../Membres/messages_lecture.php">Mes messages </a></td>';
echo '</tr><tr><td><a href="Membres/message_post.php">Poster message</a></td>';
?>
</tr>
<?php
}
?>
<tr>
<td>
<a href="Membres/index.php">Mon compte </a></td>
</tr>
<tr>
<td><a href="Pages/contact.php">Nous contacter</a> </td>
</tr>
<tr>
<td><a href="recherche.php">Recherche</td>
</tr>
<tr>
<td>Téléchargement</td>
</tr>
<tr>
<td>Liens web </a></td>
</tr>
<?php
if ($_SESSION['logged'] == true)
{
?>
<tr>
<td>
<?php
echo 'logged='.$_SESSION['logged'].'<a href="deco.php">Déconnexion</a>';
?>
</td>
</tr>
<?php
}
if (!
isset ($_SESSION['secu']))
{
?>
<tr>
<td>
<font size="2"><a href="Admin">Administration</a></font>
</td>
</tr>
<?php
}
?>
<tr><td>
<?php
//nbre connectes
include "Dossier/nbre_connectes.php"
?>
</td></tr>
</table>
Voici mon probleme, si je clique sur deconnecter, ca me renvoie sur index.php(normal) ou $_SESSION['logged']=false,$_COOKIE['user']='', $_SESSION['user']='' (toujours normal);Mais a l'affichage des menu $_SESSION['logged']=true (la, ca coince) Comment entre le debut du fichier et l'affichage des menu $_SESSION['logged']change de valeur ?
Sur ma page d'identification, je teste les cookies ainsiCode : PHP
if (
isset($_COOKIE['user']) &&
isset ($_COOKIE['passw']))
{
$_SESSION['logged'] = true;
$_SESSION['user'] = $_COOKIE['user'];
$_SESSION['passw'] = $_COOKIE['passw'];
}
si je vais sur cette page, tout se passe bien et ca ne marche pas a l'acceuil
J'ai été clair dans mes problemes ?