J'ai une page Web qui nécessite une connexion. Une fois qu'un utilisateur s'est connecté, je démarre la session et une fois qu'il se déconnecte, je le détruisons, mais lorsque j'appuie sur la page de retour, cela me donne à nouveau la page de profil d'utilisateur, ce qui ne devrait idéalement pas être le cas car l'utilisateur s'est déconnecté. Cependant, cela fonctionne bien si je recharge la page après la déconnexion.
C'est une salle de discussion locale où tout le monde en ligne et connecté peut discuter ensemble. Il existe trois pages: Le problème est une fois que je me déconnecte de toutes les variables et détruisez la session mais même si je frappe Le bouton Retour dans le navigateur (Safari), la version précédente de J'ai essayé p> désolé pour la longue question mais j'ai vraiment besoin d'aide sur Ceci. p> p> login.php code>,
auth.php code>,
logout.php code> p>
login.php code> est la page de connexion commune contautive un formulaire.
auth.php code> a un
div code> affichant tous les chats précédents jusqu'à maintenant, une zone de texte et un bouton de partage en cliquant sur lequel un formulaire est envoyé à nouveau à auth.php afin chaque fois le formulaire Publié que le chatpost est envoyé à la base de données et Auth est rechargé avec la dernière base de données de la discussion DIV .. p>
auth.php code> sans la dernière saisie de chat est visible, ce qui ne doit idéalement pas car la session est détruite. J'ai mis une validation de session dans
auth.php code>, donc je veux que le
auth.php code> pour recharger de l'utilisateur la visite après la déconnexion en tant que rechargement
auth. php code> affiche que "Vous n'êtes pas connecté" p>
6 Réponses :
Ces en-têtes forceront le navigateur et les proxys le cas échéant, de ne pas mettre en cache la page et de forcer une nouvelle demande au serveur pour cette page:
header("Cache-Control: private, must-revalidate, max-age=0"); header("Pragma: no-cache"); header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // A date in the past
fait cela détruit également toutes les variables de session
Parce que quand je commence la session, je gagne $ _Session ["enregistré"] = 1
Maintenant, lorsque je suis entré dans le code ci-dessus après avoir rechargé la page sa valeur est null
Non, il n'invalide pas la session, la session est maintenue au côté serveur avec une clé de cookie sur le côté du client, ce code n'affecte ni. Peut-être que cette valeur est change d'autre endroit, mais le problème a maintenant montré que Cuz il recharge?
header("Expires: Thu, 19 Nov 1981 08:52:00 GMT"); //Date in the past header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); //HTTP/1.1 header("Pragma: no-cache");
Merci. Fonctionne comme charme.
Sans changer l'URL, mettez ceci dans l'étiquette de tête.
Le script utilise deux cookies:
- un à stocker si la page a été visitée de
- un à stocker si la charge réelle a été déclenchée
Pour une solution JavaScript pure, ajoutez-la à votre code HTML:
<input id="alwaysFetch" type="hidden" /> <script> setTimeout(function () { var el = document.getElementById('alwaysFetch'); el.value = el.value ? location.reload() : true; }, 0); </script>
J'utilise une solution mixte, car je n'ai pas trouvé de méthode de navigateur croisée pour recharger la page après avoir frappé le Backbutton.
Tout d'abord, j'ajoute des balises méta à toutes mes pages: P> Deuxièmement, j'ajoute le JavaScript suivant sur la balise dans toutes mes pages: p> J'applique ce correctif dans l'un des Mes sites Web et cela fonctionne bien dans IE 10, Safari et Chrome. P> P>
J'ai essayé de nombreuses solutions, mais ce qui a fonctionné pour moi est cette ligne de code simple.
<body onunload="">
CONSEIL: Utilisez une grammaire appropriée pour expliquer votre problème, au lieu de 1 phrase longue; Ça va mieux les chances que quelqu'un veuille i> de lire ceci.
@Alec, son grammer est correct, sauf une erreur de typo "Je veux que l'Auth.PHP puisse recharger
de code> l'utilisateur la visite après la déconnexion". @ Tushar rompt votre question dans les paragraphes pour améliorer la lisibilité
Ceci est très étrange Utilisez-vous php
session_start () code> fonction pour générer la session dans la page de connexion? Si oui, il devrait déjà prendre soin d'envoyer l'en-tête correct afin d'empêcher le navigateur de la page de mise en cache (voir ma réponse). Sur quel navigateur avez-vous testé cela?