Problème de destruction Session ... ou de chargement de page ??

cs_Godson Messages postés 7 Date d'inscription samedi 6 décembre 2003 Statut Membre Dernière intervention 28 juin 2006 - 29 juil. 2005 à 09:38
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 29 juil. 2005 à 14:42
Bonjour,

J'ai crée un site de web et j'utilise les sessions pour gérer mon espace membre.
Tout se passe dans le meilleur des mondes, jusqu'à ce que je fasse tester mon application à mon collègue. Et là quelle ne fut pas ma surprise, lorsque après s'être connecté puis, dans la foulée, déconnecté ( et donc rediriger vers l'accueil), de voir que lorsque mon collègue clique sur le bouton page précédente du browser (IE pour infos), il se retrouve sur une page normalement réservé au membre et qu'aucune redirection ne se passe ( car si vous n'êtes pas loggé en tant que membre vous êtes immédiatement dirigé vers l'accueil avec le message:"Connectez-vous ou Inscrivez-vous!").

Je suppose tout d'abord que je n'est pas bien détruit ma session, or en regardant mon code et en le comparant à ceux trouvés sur le net je ne vois pas en quoi, il est mauvais.
unset($_SESSION['LOGIN']);
unregister('LOGIN');
unset($_SESSION['Contributeur']);
unregister('Contributeur');
session_unset(); // suppression des variables de sessions
session_destroy(); // destruction de la session
header("location: accueil.php"); // redirection

Je me demande alors si le bouton précédente de IE ne fait pas que recharger une page en mémoire sans l'actualiser.
Je ne comprends vraiment pas ce qui se passe, et suis un peu flippé car cela compromets tout mon projet.
Or il est évident qu'interdire l'accès à une page précédente est possible.
Exemple des comptes Yahoo!Mail qui dès la session fermée interdise l'accès au compte.

Si vous avez une suggestion, ce n'est pas de refus.

Merci d'avance.

11 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
29 juil. 2005 à 09:41
Salut,



il s'agit du cache du navigateur, pour éviter ça dans ta zone membre tu peux écrire ceci :



header('pragma:no-cache');



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Godson Messages postés 7 Date d'inscription samedi 6 décembre 2003 Statut Membre Dernière intervention 28 juin 2006
29 juil. 2005 à 10:09
Dois-je le placer en première ligne de mon code sachant que toutes les pages de la section membre commencent ainsi:

<?
require("../include/Contributeur.php");
session_start(); // On utilise les sessions
?>

En effet j'utilise aussi un objet en variable de session.
0
ngomndour Messages postés 2 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 29 juillet 2005
29 juil. 2005 à 12:09
C'est exactement le même probléme que j'ai et ça me bloque totalement.
Je suis avec beaucoup d'interet les réponses qui seront apportées.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 juil. 2005 à 12:13
Les header doivent juste se placer avant tout html.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Godson Messages postés 7 Date d'inscription samedi 6 décembre 2003 Statut Membre Dernière intervention 28 juin 2006
29 juil. 2005 à 14:08
1.php

Code:,
----

<html>

vers 2

</html>

2.php

Code:,
----

<? header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); ?>
<html>
<head>
<META Http-Equiv="Cache-Control" Content="no-cache">
<META Http-Equiv="Pragma" Content="no-cache">
<META Http-Equiv="Cache" Content="no store">
</head>

Hey

<? echo $mes; ?>
vers 1

</html>

Que je fasse précédent ou suivant un nombre incalculable de fois ne change rien j'ai toujours, les message ola qui s'affiche.

Le Problème pourrait-il venir du serveur.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
29 juil. 2005 à 14:08
<?php

session_start(); // On utilise les sessions

require '../include/Contributeur.php';
?>


<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
29 juil. 2005 à 14:09
non c'est pas bon ce que t'as fait, il ne faut pas de code html avant,
ou sinon il faut utiliser ob_start(); tout en haut et ob_end_flush();
tout en bas

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Godson Messages postés 7 Date d'inscription samedi 6 décembre 2003 Statut Membre Dernière intervention 28 juin 2006
29 juil. 2005 à 14:32
Dites moi si je me trompe mais lorsque l'on veut utiliser un objet comme variable de session, on doit mettre l'include avant le session_start().

Dans mon troisième message je n'utilise plus de session je cherche juste à savoir si on peut empecher que le cache soit rempli.( faite le test à la maison, avec les 1.php et 2.php vous verrez que ça ne fonctionne pas)
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
29 juil. 2005 à 14:36
Non tu mets le session_start() avant toute sortie html et avant
toute utilisation des sessions, bref ça dépend de ton code tu peux très
bien mettre des include avant
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Godson Messages postés 7 Date d'inscription samedi 6 décembre 2003 Statut Membre Dernière intervention 28 juin 2006
29 juil. 2005 à 14:37
PHP Fatal error: Unknown(): The script tried to execute a method or access a property of an incomplete object.
Please ensure that the class definition contributeur of the object you are trying to operate on was loaded _before_ the session was started
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
29 juil. 2005 à 14:42
enlève ta classe ou passe-nous le code de ta classe... Dans ce cas
apparemment elle ne veut pas que tu mettes le session_start() avant...
Je vois pas en quoi ça interfère, bref change de script

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Rejoignez-nous