Post-Redirect-Get (PRG)-Muster in PHP: Schutz vor erneuter Formularübermittlung erreichen
Verhindern Sie beim Entwerfen von Webanwendungen die erneute Übermittlung von Formularen B. nach dem Neuladen der Seite oder Aktionen mit der Zurück-Schaltfläche, können das Benutzererlebnis verbessern und die Datenintegrität wahren. Das Post-Redirect-Get (PRG)-Muster ist ein weithin anerkannter Ansatz zur Lösung dieses Problems, aber die Suche nach einfachen PHP-Implementierungen kann eine Herausforderung sein.
Hier ist ein vereinfachtes Beispiel, das das PRG-Muster in PHP demonstriert:
<?php if ($_POST) { // Validate input if (/* Input is valid */) { // Execute code (such as database updates) here. // Redirect to this page. header("Location: {$_SERVER['REQUEST_URI']}", true, 303); exit(); } } ?> <html> <!-- Your HTML page with a form --> </html>
In diesem Beispiel wird die Eingabe validiert, wenn das Formular per POST übermittelt wird. Wenn die Eingabe gültig ist, wird Code wie Datenbankaktualisierungen ausgeführt. Anschließend leitet das Skript den Benutzer mithilfe des Location-Headers auf dieselbe Seite weiter. Der Statuscode 303 See Other gibt an, dass die Anfrage über GET wiederholt werden sollte, wodurch eine erneute Formularübermittlung effektiv verhindert wird.
Durch die Verwendung von $_SERVER['REQUEST_URI'] vermeidet dieses Beispiel potenzielle Probleme mit PHP_SELF in CMS-Systemen und Frameworks. Die Funktion „exit()“ wird aufgerufen, um die Ausführung des HTML-Codes unterhalb der Umleitung zu verhindern.
Diese PRG-Implementierung bietet Schutz vor erneuter Formularübermittlung und minimiert gleichzeitig die Codekomplexität. Durch die Verwendung dieses Musters können Sie die Robustheit und Benutzererfahrung Ihrer Webanwendungen verbessern.
Das obige ist der detaillierte Inhalt vonWie kann das Post-Redirect-Get (PRG)-Muster die erneute Übermittlung von Formularen in PHP verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!