session_destroy + back = session active ??? - PHP - Programmation
Marsh Posté le 23-04-2007 à 09:27:36
détruis aussi les variables de session ...
$_SESSION = array();
session_destroy();
Marsh Posté le 23-04-2007 à 09:34:35
c'est ce que j'ai mis ...
j'ai enlevé le
Code :
|
car il n'y a pas de cookie, en fait.
j'ai donc :
Code :
|
Marsh Posté le 23-04-2007 à 10:55:07
Après avoir fait "Back", tu as essayé d'accéder à une page qui nécessitait la session? C'était peut-être simplement la cache du navigateur qui te renvoie une page identique Si tu veux que la page soit d'office rechargée, il faut changer les headers de ta page.
Marsh Posté le 23-04-2007 à 12:14:08
Citation : Après avoir fait "Back", tu as essayé d'accéder à une page qui nécessitait la session? |
oui
Citation : C'était peut-être simplement la cache du navigateur qui te renvoie une page identique |
peut-être mais après je navigue avec la session active.
Citation : Si tu veux que la page soit d'office rechargée, il faut changer les headers de ta page. |
je ne veux pas que les pages d'avant (avec session) soient accessibles.
les headers ? de quelle page ?
frame menu + frame corps
|
\|/
logout.php ===> index.html (ok) puis si + back ===> frame menu + frame corps (connecté), pas ok...
j'ai fait un test sans frame sur 2 pages et ca fonctionne apparemment bien.
je me demande donc pourquoi les frames gardent la session...
Marsh Posté le 23-04-2007 à 12:44:51
les headers des pages accessibles uniquement par session a priori. Un truc genre:
Code : |
(je ne suis pas un pro des headers mais c'est une bonne piste)
Marsh Posté le 23-04-2007 à 14:18:17
Et ta session il reste quelque chose dedans? Je penche aussi pour une histoire de cache Pour les entêtes, c'est sur lles pages que tu veux pas mettre en cache, donc sur les pages où la session à son rôle à jouer
Marsh Posté le 23-04-2007 à 15:49:31
je ne sais pas s'il reste quelque chose dedans. J'ai bien l'impression que oui, puisque je navigue après sans soucis.
comment faire pour le savoir, sachant que la redirection se fait sur du html ?
par contre sans faire de redirection, mais en copiant un lien à session dans la barre url, l'accès est coupé avec le message qui va bien...
Marsh Posté le 23-04-2007 à 15:52:10
Donc c'est bien le cache qui fait son boulot
Suffit de faire un print_r($_SESSION) en tête de page pour voir s'il reste quelque chose dedans
Si ça t'affiche rien, c'est que la page est pas regénérée ==> cache
Marsh Posté le 23-04-2007 à 16:00:10
et le header('cache-control...
je le mets où exactement ?
entre quelle et quelle balise ?
pour lors il est après le session_start();
et ca marche pas.
Marsh Posté le 23-04-2007 à 16:07:04
Il faut invoquer les commandes header avant le session_start, car celui-ci déclenche l'envoi d'un cookie et header ne fonctionne pas si quelque chose est déjà envoyé au navigateur.
Marsh Posté le 23-04-2007 à 18:15:28
Si je ne m'abuse, le header peut être envoyé tant que l'ouput n'a pas été solicité
Marsh Posté le 23-04-2007 à 18:32:34
Oui mais la session déclenche l'envoi d'un cookie, et le cookie fait partie de l'output
Marsh Posté le 23-04-2007 à 18:38:04
S'pa impossible
Marsh Posté le 23-04-2007 à 09:18:22
bonjour,
je reprends du code d'un collègue...
le code de redirection fonctionne bien mais...
quand je fais un back, je reviens sur la page avec la session qui toujours là et active...
malheureusement j'ai des frames, d'où le code de redirection en js.
mon fichier logout.php :
Note: travail sur XAMPP en local.
a quoi cela est-il dû ?
Merci d'avance de vos réponses.
KB