Heim >Backend-Entwicklung >PHP-Tutorial >So verhindern Sie mehrere Formularübermittlungen in PHP: Eine umfassende Anleitung

So verhindern Sie mehrere Formularübermittlungen in PHP: Eine umfassende Anleitung

Susan Sarandon
Susan SarandonOriginal
2024-11-15 05:52:02943Durchsuche

How to Prevent Multiple Form Submissions in PHP: A Comprehensive Guide

Verhindern mehrfacher Formularübermittlungen in PHP: Ein umfassender Leitfaden

Mehrfache Formularübermittlungen können in Webanwendungen ein Problem darstellen und zu unbeabsichtigten Folgen führen. Dieser Artikel bietet eine detaillierte Lösung zur Verhinderung mehrfacher Übermittlungen in PHP.

Lösung mit Tokens

PHP bietet eine robuste Lösung mit einzigartigen Tokens, die generiert und gespeichert werden können Sitzung. So implementieren Sie es:

  1. Generieren Sie ein Token: Verwenden Sie die Funktion getToken(), um ein eindeutiges Token zu erstellen, das in das Formular eingebettet wird.
  2. Token validieren: Überprüfen Sie beim Absenden des Formulars die Gültigkeit des übermittelten Tokens mit der Funktion isTokenValid($token). Wenn das Token gültig ist, entfernen Sie es aus der Liste der gültigen Token, um eine Wiederverwendung zu verhindern.
  3. Formular anzeigen: Rufen Sie mit getToken() ein Token für das aktuelle Formular ab und fügen Sie es als ausgeblendetes Token ein Eingabe im Formular.

Codebeispiel:

<?php
session_start();

function getToken(){
  $token = sha1(mt_rand());
  $_SESSION['tokens'][$token] = 1;
  return $token;
}

function isTokenValid($token){
  if(!empty($_SESSION['tokens'][$token])){
    unset($_SESSION['tokens'][$token]);
    return true;
  }
  return false;
}

$postedToken = filter_input(INPUT_POST, 'token');
if(!empty($postedToken) && isTokenValid($postedToken)){
  // Process Form
}

$token = getToken();
?>
<form method="post">
  <input type="hidden" name="token" value="<?php echo $token; ?>"/>
  <!-- Form Content -->
</form>

Weiterleitungen und Abwärtskompatibilität

Zu pflegen Für eine ordnungsgemäße Rückwärts- und Vorwärtsnavigation wird die Implementierung eines POST/Redirect/GET-Musters empfohlen. Dies beinhaltet:

  1. POSTEN Sie das Formular mit dem Token.
  2. Führen Sie nach erfolgreicher Token-Validierung die gewünschten Aktionen aus und leiten Sie den Benutzer auf eine neue Seite weiter.
  3. Verwenden eine GET-Anfrage für die umgeleitete Seite, um zu verhindern, dass das Formular erneut übermittelt wird, wenn der Benutzer auf die Schaltfläche „Zurück“ klickt.

Durch Befolgen dieser Schritte können Sie mehrere Formularübermittlungen wirksam verhindern und die Integrität des Formulars sicherstellen Ihre Webanwendung.

Das obige ist der detaillierte Inhalt vonSo verhindern Sie mehrere Formularübermittlungen in PHP: Eine umfassende Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn