2010-02-02 2 views
1

J'ai écrit un blog en utilisant php et mysql qui a une fonction de connexion. Lorsque vous êtes déconnecté et que vous répondez, il ne doit pas afficher les fonctionnalités d'un membre puisque vous n'êtes plus connecté. Comment puis-je le corriger afin que lorsqu'un utilisateur ne se connecte plus et clique sur le bouton précédent, la page précédente devrait être dans l'état avant qu'il se connecte?Refeshing une page à un nouvel état

+0

+1 Bienvenue dans StackOverflow, @ErikaGomez. – Sampson

Répondre

1

Il est difficile de discerner ce mécanisme d'authentification que vous utilisez, mais en supposant que cela est une question de pure mise en cache, vous pouvez ajouter les déclarations suivantes au début de toutes les pages .php affichées lorsque vous êtes connecté.

header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: Mon, 1 Jan 1970 05:00:00 GMT"); 

Cela devrait prendre soin des problèmes de mise en cache. Et assurez-vous que vous unset() la variable d'accès que vous avez utilisé pour savoir si l'utilisateur est connecté ou non (dans $_SESSION ou similaire).

0

Ceci est une fonctionnalité du navigateur. Mais ne vous inquiétez pas, vous ne serez pas en mesure de faire des choses de niveau administratif si vous n'êtes pas effectivement connecté. Si vous le souhaitez, vous pouvez envoyer une requête au serveur via javascript pour demander si le l'utilisateur est connecté lors du chargement d'une page. Si cette requête est fausse, vous pouvez masquer les contrôles d'administration ou rediriger l'utilisateur vers la page d'index.

Vous pouvez indiquer explicitement dans le code que vous souhaitez ne pas mettre en cache les pages, mais cela va ralentir l'expérience des visiteurs et entraîner plus de frais généraux pour votre serveur. Je ne pense pas que les fins justifient les moyens dans cette solution particulière.

+0

Oui, j'en ai pris soin. Mais ça ne semble pas bien. –

Questions connexes