web-dev-qa-db-fra.com

PHP Document expiré

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

21
user1383147

Ajoutez ceci au début de PHP codes :

ini_set('session.cache_limiter','public');
session_cache_limiter(false);
21
T.Todua

Définissez l'en-tête Cache-Control dans votre page principale.

<?php
header('Cache-Control: max-age=900');
?>
16
Sanjeev Chauhan

En utilisant la règle Post/Redirect/Get, vous pouvez éviter cela.

Ce problème se posera comme suit:

  • Disons que j'ai example1.php, example2.php et example3.php
  • Je publie des valeurs de 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).
  • Après cela, j'ai redirigé la page de 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.

15

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.

2
Kabir Hossain

il suffit de mettre cette ligne dans votre page.

<?php 
header("Cache-Control: max-age=300, must-revalidate"); 
?>
1
Pavan Patil

Vérifiez si la mise en cache est désactivée sur l'en-tête comme 

<HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">

1
zapping

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.

1
Gokul Shinde

Ce problème se produira selon les deux scénarios suivants:

  • Implémentation de la recherche avec Post
  • Redirection vers une page précédemment publiée.

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.

0
Bsienn