Recharger la page sur la frappe de touche retour
J'ai une page web qui nécessite une identification. Une fois qu'un utilisateur a ouvert une session j'ai le début de la séance et une fois qu'il se connecte je le détruire, mais lorsque j'appuie sur le dos de la page, il me donne la page profil de l'utilisateur, ce qui idéalement ne devrait pas être le cas si l'utilisateur s'est déconnecté. Cependant, il fonctionne très bien si je recharge la page, après s'être déconnecté.
C'est un salon de discussion où tout le monde en ligne et connecté à peut discuter ensemble. Il y a trois pages: login.php
, auth.php
, logout.php
login.php
est la commune de la page de connexion contenant un formulaire. auth.php
a un div
affichant l'ensemble des conversations précédentes jusqu'à présent, une zone de texte et le bouton partager en cliquant sur lequel un formulaire est envoyé de nouveau à auth.php donc, chaque fois que le formulaire est posté le chatpost est envoyé à la base de données et d'authentification est rechargé avec la dernière base de données dans le chat div..
Maintenant, le problème est une fois de me déconnecter je annuler toutes les variables et de détruire la session, mais même alors, si j'ai touché le bouton de retour dans le navigateur (Safari), la version précédente de auth.php
sans le dernier chat entrée est visible qui devraient idéalement pas que la session est détruite. J'ai mis une session de validation dans auth.php
, donc, fondamentalement, je veux que le auth.php
pour recharger des visites de l'utilisateur après la déconnexion comme le rechargement auth.php
affiche que "vous n'êtes pas connecté"
j'ai essayé
<?php header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
and
<head>
<meta http-equiv='Pragma' content='no-cache'>
<meta http-equiv='Expires' content='-1'>
</head>
Désolé pour la longue question, mais j'ai vraiment besoin d'aide sur ce.
- Astuce: utilisez une bonne grammaire pour expliquer votre problème, au lieu de 1 phrase longue, il va les meilleures sont les chances que quelqu'un va réellement envie de lire ce.
- Sa grammaire est correcte à l'exception d'une faute d'erreur "je veux que la auth.php pour recharger
of
les visites de l'utilisateur après la déconnexion".@tushar casser votre question dans les paragraphes afin d'améliorer la lisibilité - c'est très étrange, ne vous utilisez PHP
session_start()
de fonction pour générer de la session dans la page de connexion? Si oui il faut déjà prendre soin d'envoyer l'en-tête correcte afin d'empêcher le navigateur de mise en cache de la page (voir ma réponse). Sur quel navigateur avez-vous tester cette?
Vous devez vous connecter pour publier un commentaire.
Ces en-têtes permettra de forcer le navigateur, et de proxies, le cas échéant, de ne pas mettre en cache la page et la force d'une nouvelle requête au serveur pour que la page:
Cela fonctionne pour moi sur FF3.6, IE7, IE8, Chrome5 (lors de la frappe du navigateur en arrière/en avant le bouton de la page est toujours RECHARGÉ)
Une autre solution est d'envoyer exactement les mêmes en-têtes envoyés par
session_start()
fonction, très similaires à celles ci-dessus, mais encore plus riche:REMARQUE: également la ordre indiqué ici est le MÊME que l'ordre envoyé par
session_start()
(vous pouvez le tester avec HttpFox addon pour les FF)Pour un pur javascript solution juste ajouter ceci à votre code HTML:
Le code attribue une valeur à l'caché d'entrée qui restera après le retour du bouton est cliqué. C'est ensuite utilisé pour déterminer si la page est obsolète dans ce cas, il est rechargé.
Sans changer l'url, le mettre dans la balise head.
Le script utilise deux types de cookies:
- stocker si la page a été visitée
- stocker si le reaload a été déclenchée
Je suis en utilisant une solution mixte, comme je n'ai pas trouvé de croix-navigateur méthode de recharger la page après l'appui sur le bouton retour.
Tout d'abord, j'ai ajouter des balises meta pour l'ensemble de mes pages:
Deuxièmement,j'ai ajouter le code javascript suivant dans la balise dans toutes mes pages:
Je suis d'appliquer ce correctif sur un de mes sites web et il fonctionne très bien sous IE 10, Safari et Chrome.
J'ai essayé beaucoup de solutions, mais ce qui a fonctionné pour moi, c'est cette simple ligne de code.
Ajouter décharger de l'événement avec la balise body et vérifier votre problème.