Je fais du codage PHP, si le bouton "Retour" est appuyé sur le navigateur, j'obtiens l'erreur suivante:
Document Expired
This document is no longer available.
Quel code puis-je mettre en œuvre pour répondre à cette situation
Ajoutez ceci au début de PHP codes :
ini_set('session.cache_limiter','public');
session_cache_limiter(false);
Définissez l'en-tête Cache-Control dans votre page principale.
<?php
header('Cache-Control: max-age=900');
?>
En utilisant la règle Post/Redirect/Get, vous pouvez éviter cela.
Ce problème se posera comme suit:
example1.php
, example2.php
et example3.php
example1.php
à example2.php
, puis j’ai fait tous les trucs de la base de données selon mes besoins et rendu la page (Non redirigé - Vient de poster et la page a été rendue).example2.php
vers example3.php
. Maintenant, si vous cliquez sur le navigateur précédent le document expirera.Pour éviter cela, nous pouvons publier les valeurs de example1.php
à example2.php
et rediriger immédiatement l'utilisateur vers une autre page.
Ceci est Publier/Rediriger/Obtenir modèle qui peut être suivi pour éviter l'expiration du document. Cela permet également d'éviter les entrées redondantes dans la base de données.
Allez le php.ini de votre serveur et Changez cela
session.cache_limiter = nocache
Comme
session.cache_limiter = public
Le problème serait résolu. J'ai résolu mon problème avec ça.
il suffit de mettre cette ligne dans votre page.
<?php
header("Cache-Control: max-age=300, must-revalidate");
?>
Vérifiez si la mise en cache est désactivée sur l'en-tête comme
<HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
J'ai vécu le même problème. Une page sur laquelle je voulais revenir avait affiché des valeurs de forme et ainsi, lorsque j'ai cliqué sur le lien Précédent, elle affichait l'erreur Document Expired. Voir exemple-
Il y a trois pages, page1.php, page2.php et page3.php. Maintenant, je soumets un formulaire de page1.php à page2.php en utilisant la méthode POST. De page2.php, j'ai cliqué sur un lien de page3.php.
Maintenant, je veux revenir à page2.php de page3.php. Mais page2.php ont des valeurs de formulaire postées à l’aide de la méthode POST et quand je viens de page2.php à partir de page3.php, le navigateur affiche l’erreur "Docuemnt expiré".
Alors j'ai utilisé GET méthode au lieu de POST. Ainsi, lorsque vous revenez à la page2.php, il n'y aura pas de valeurs POST de formulaire et la page se chargera correctement. De plus, comme les valeurs de formulaire sont présentes dans l'URL, la page se chargera comme prévu.
Ce problème se produira selon les deux scénarios suivants:
Post
Il existe 2 façons de résoudre ce problème facilement sans aucun piratage.
Pour search form
, n'utilisez pas la méthode post
, utilisez plutôt la méthode get et tout fonctionne correctement.
Si vous avez vraiment besoin de masquer les entrées de formulaire pour une raison quelconque et souhaitez utiliser la méthode post, le lien/action qui provoque la redirection vers une autre page, faites-la rediriger via JavaScript.
location.replace('http://example.com/page2');
Cela supprime l'URL de référence et force une nouvelle requête http . Maintenant, appuyer sur le bouton de retour du navigateur ne fera pas expirer le document.