Problème de destruction Session ... ou de chargement de page ??
cs_Godson
Messages postés7Date d'inscriptionsamedi 6 décembre 2003StatutMembreDernière intervention28 juin 2006
-
29 juil. 2005 à 09:38
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 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.
A voir également:
"Url de la page, sur votre site, où est affiché le lien vers"
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 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
cs_Godson
Messages postés7Date d'inscriptionsamedi 6 décembre 2003StatutMembreDernière intervention28 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)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 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%">
cs_Godson
Messages postés7Date d'inscriptionsamedi 6 décembre 2003StatutMembreDernière intervention28 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
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 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