web-dev-qa-db-de.com

PHP Dokument abgelaufen

Wenn ich die PHP - Codierung durchführe, bekomme ich folgende Fehlermeldung:

Document Expired
This document is no longer available.

Welchen Code kann ich implementieren, um dieser Situation gerecht zu werden?

21
user1383147

Füge dies am Anfang von PHP -Codes hinzu :

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

Legen Sie den Cache-Control-Header auf Ihrer Hauptseite fest.

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

Mit der Post/Redirect/Get-Regel können Sie dies vermeiden.

Dieses Problem wird durch Folgendes verursacht:

  • Angenommen, ich habe example1.php, example2.php und example3.php
  • Ich gebe ein paar Werte von example1.php nach example2.php, dann habe ich alle DB-Sachen gemäß meinem Bedarf erstellt und die Seite gerendert (Nicht umgeleitet - Gerade gepostet und die Seite wurde gerendert).
  • Danach habe ich die Seite von example2.php zu example3.php..__ umgeleitet. Wenn Sie nun auf den Browser zurück klicken, läuft Document verfällt.

Um dies zu vermeiden, können wir die Werte von example1.php nach example2.php buchen und den Benutzer sofort auf eine andere Seite umleiten. 

Dies ist Post/Redirect/Get Muster, das verfolgt werden kann, um das Auslaufen des Dokuments zu vermeiden. Es hilft auch, redundante Einträge in der DB zu vermeiden.

Gehen Sie auf die php.ini Ihres Servers und ändern Sie dies

session.cache_limiter = nocache

Wie

 session.cache_limiter = public

Das Problem wäre gelöst. Ich habe mein Problem damit gelöst.

2
Kabir Hossain

fügen Sie einfach diese Zeile in Ihre Seite ein.

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

Prüfen Sie, ob die Zwischenspeicherung in der Kopfzeile deaktiviert ist 

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

1
zapping

Ich habe das gleiche Problem durchgemacht. Auf einer Seite, auf der ich zurückkehren möchte, wurden Formularwerte angezeigt. Wenn ich auf den Link "Zurück" klicke, wurde der Fehler "Dokument abgelaufen" angezeigt. Siehe Beispiel-

Es gibt drei Seiten, page1.php, page2.php und page3.php. Jetzt sende ich ein Formular von page1.php an page2.php mit der Methode POST. Von page2.php aus habe ich auf einen Link von page3.php geklickt.

Nun möchte ich auf page2.php von page3.php zurückkommen. Bei page2.php wurden jedoch Formularwerte mit der Methode POST gepostet. Wenn ich auf page2.php von page3.php komme, wird im Browser der Fehler "Docuemnt Expired" angezeigt.

Also habe ich benutzt GET Methode stattdessen von POST. Wenn Sie also auf page2.php zurückkommen, werden die POST - Werte von Formular und Seite nicht richtig geladen. Da Formularwerte in der URL vorhanden sind, wird die Seite erwartungsgemäß geladen.

1
Gokul Shinde

Dieses Problem tritt bei den folgenden zwei Szenarien auf:

  • Suche mit Post implementieren
  • Zurück zu einer Seite, die zuvor veröffentlicht wurde.

Es gibt zwei Möglichkeiten, dieses Problem ohne Hacking zu lösen.

Verwenden Sie für search form keine post-Methode. Verwenden Sie stattdessen die get-Methode, und alles funktioniert einwandfrei.

Wenn Sie die Formulareingaben wirklich aus irgendeinem Grund ausblenden müssen und die Post-Methode verwenden möchten, müssen Sie die Verknüpfung/Aktion, die die Weiterleitung zu einer anderen Seite bewirkt, durch JavaScript weiterleiten.

location.replace('http://example.com/page2');

Dadurch wird die Verweis-URL entfernt und eine neue http-Anfrage erzwungen. Jetzt wird durch Drücken der Zurück-Taste im Browser das Dokument nicht mehr verfallen.

0
Bsienn