Heim >Backend-Entwicklung >PHP-Tutorial >Ausführliche Erläuterung, wie Eingabeinhalte nach einem Fehler bei der Formularübermittlung zurückgegeben und beibehalten werden
Was soll ich tun, wenn der zurückgegebene Inhalt nach einem Formularübermittlungsfehler verschwindet? Heute werden wir dieses Problem analysieren und lösen. In diesem Artikel wird hauptsächlich die Lösung für das Problem vorgestellt, dass der zurückgegebene Inhalt nach einem Formularübermittlungsfehler verschwindet. Freunde in Not können darauf verweisen. Ich hoffe, es hilft allen.
Situationsübersicht:
Beim Ausfüllen und Absenden des Formulars tritt ein Problem auf. Nachdem der Benutzer das Formular ausgefüllt und abgesendet hat, stellt das Programm dies fest es entspricht nicht den Anforderungen und retourniert. Die zuvor ausgefüllten Formularinformationen werden nach der Retoure gelöscht. Es spielt keine Rolle, ob die Menge der eingegebenen Informationen gering ist, aber wenn die Menge der eingegebenen Informationen relativ groß ist, wirkt sich dies direkt auf die gute Laune der Person aus, die die Informationen ausfüllt. Daher ist die Lösung des Problems, dass der ausgefüllte Inhalt verschwindet, nachdem ein Formularübermittlungsfehler erneut aufgetreten ist, ein dringendes Problem, um die Benutzererfahrung zu verbessern.
Für diese Art von Problem haben wir die folgenden Situationen zusammengefasst:
(1) Die Seite verwendet die Funktion session_start. Diese Funktion weist die Eigenschaft auf, dass die aktuelle Seite nicht aktualisiert wird Die Lösung besteht darin, nach dieser Funktion den folgenden Code hinzuzufügen:
header("Cache-control:private");//注意在本行之前你的PHP程序不能有任何输出
Es gibt mehrere andere Lösungen, um
session_cache_limiter('nocache'); //清空表单 session_cache_limiter('private'); //不清空表单,只在session生效期间 session_cache_limiter('public'); //不清空表单,如同没使用session一般
vor session_start hinzuzufügen, um die obige Sitzung festzulegen. Dies führt zu Seesion zwischengespeichert werden, was zu dem Problem führt, dass Sitzungsinformationen nicht aktualisiert werden können, wenn Sie sie auf die Sitzung anwenden. Aus diesem Grund werden in diesem Artikel die folgenden anderen Lösungen vorgeschlagen.
(2) Verwenden Sie die Header-Methode, um die Cache-Steuerung des Nachrichtenheaders festzulegen, und fügen Sie der Seite den folgenden Code hinzu:
header('Cache-Steuerung: privat, muss erneut validiert werden') ; //Unterstützungsseite Zurückspringen, beachten Sie, dass vor dieser Zeile keine Ausgabe erfolgen darf
(3) Verwenden Sie die Methode session_cache_limiter und fügen Sie der Seite den folgenden Code hinzu:
session_cache_limiter('private , Must-Revalidate'); //Hinweis Muss vor der session_start-Methode geschrieben werden
Das Folgende ist eine ergänzende Erklärung des Cache-Control-Nachrichtenheaderfelds:
Cache-Control gibt den Caching-Mechanismus an, gefolgt von der Anfrage und Antwort. Durch das Festlegen von Cache-Control in einer Anforderungsnachricht oder Antwortnachricht wird der Caching-Prozess während der Verarbeitung einer anderen Nachricht nicht geändert. Cache-Anweisungen während der Anfrage umfassen „no-cache“, „no-store“, „max-age“, „max-stale“, „min-fresh“, „only-if-cached“. Anweisungen in der Antwortnachricht umfassen „public“, „private“ und „no-cache“. , kein Speichern, keine Transformation, erneute Validierung erforderlich, erneute Proxy-Überprüfung, maximales Alter. Die Bedeutung der Anweisungen in jeder Nachricht ist wie folgt:
Öffentlich: gibt an, dass die Antwort von jedem Cache zwischengespeichert werden kann.
Privat: Zeigt an, dass die Antwortnachricht für einen einzelnen Benutzer ganz oder teilweise nicht vom freigegebenen Cache verarbeitet werden kann. Dadurch kann der Server nur eine Teilantwort eines Benutzers beschreiben, die für die Anfragen anderer Benutzer nicht gültig ist.
no-cache: Gibt an, dass die Anforderungs- oder Antwortnachricht nicht zwischengespeichert werden kann
no-store: Wird verwendet, um zu verhindern, dass wichtige Informationen freigegeben werden unbeabsichtigt. Das Senden in der Anforderungsnachricht führt dazu, dass sowohl die Anforderungs- als auch die Antwortnachrichten Caching verwenden.
max-age: Gibt an, dass der Client Antworten mit einer Lebensdauer empfangen kann, die nicht größer als die angegebene Zeit in Sekunden ist.
min-fresh: Gibt an, dass der Client Antworten mit einer Antwortzeit erhalten kann, die kürzer ist als die aktuelle Zeit plus die angegebene Zeit.
max-stale: Zeigt an, dass der Client Antwortnachrichten über den Timeout-Zeitraum hinaus empfangen kann. Wenn Sie einen Wert für Max-Stale-Nachrichten angeben, kann der Client Antwortnachrichten empfangen, die den angegebenen Wert des Timeout-Zeitraums überschreiten.
Wenn Sie nach dem Lesen dieses Artikels auf ähnliche Probleme stoßen, können Sie diese vollständig lösen. Bitte denken Sie daran, dass diese Lösung nur für PHP-Websites gilt.
Verwandte Empfehlungen:
Detaillierte Erklärung, wie PHP VCF-VCard-Dateien generiert
Detaillierte Erklärung der hochpräzisen BC-Funktionsbibliothek von PHP
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung, wie Eingabeinhalte nach einem Fehler bei der Formularübermittlung zurückgegeben und beibehalten werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!