„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie verhindert man mehrere Einfügungen beim Senden von Formularen in PHP?

Wie verhindert man mehrere Einfügungen beim Senden von Formularen in PHP?

Veröffentlicht am 08.11.2024
Durchsuche:323

How to Prevent Multiple Inserts When Submitting Forms in PHP?

Verhindern mehrfacher Einfügungen beim Senden eines Formulars in PHP

Mehrfache Einfügungen beim Senden eines Formulars können auftreten, wenn der Benutzer mehrmals auf die Schaltfläche „Senden“ drückt. Dies kann zu einer unbeabsichtigten Datenduplizierung führen. Es gibt mehrere Ansätze, dieses Problem zu beheben:

  1. JavaScript-Senden-Schaltfläche deaktivieren:

    Diese Methode verwendet JavaScript, um die Senden-Schaltfläche zu deaktivieren, nachdem sie aktiviert wurde geklickt. Es ist jedoch nicht zuverlässig, da Formulare ohne Verwendung der Schaltfläche oder mit deaktiviertem JavaScript übermittelt werden können.

  2. PHP-Sitzungszeitstempel:

    Dieser Ansatz Setzt eine Sitzungsvariable ($_SESSION['posttimer']) bei der Formularübermittlung auf den aktuellen Zeitstempel. Während der Formularverarbeitung prüft es, ob die Variable vorhanden ist und vergleicht sie mit dem aktuellen Zeitstempel. Wenn der Zeitunterschied kleiner als ein vordefinierter Schwellenwert (z. B. 2 Sekunden) ist, wird eine doppelte Übermittlung erkannt.

  3. Eindeutige Token-Inklusion:

    Bei dieser Methode wird in jedes Formular ein eindeutiges Token eingefügt. Eine Sitzungsvariable enthält das im Formular verwendete Token. Beim Absenden des Formulars wird ein neues Token generiert. Wenn das übermittelte Token nicht mit dem Sitzungstoken übereinstimmt, wird dies als doppelte Übermittlung betrachtet. Beispiel:

    // form.php
    $_SESSION['token'] = md5(session_id() . time());
    
    echo '
    '; // foo.php if (isset($_SESSION['token'])) { if (isset($_POST['token']) && $_POST['token'] != $_SESSION['token']) { // Double submit detected } }

Durch die Implementierung einer dieser Methoden können Sie mehrfache Einfügungen beim Senden von Formularen in PHP effektiv verhindern, die Datenintegrität sicherstellen und unbeabsichtigte Duplikate vermeiden.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729517478 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3