


PHP-Methode zur Lösung und Vermeidung wiederholter Formularübermittlungen
Nachdruck von: http://www.hlmblog.com/183.html
Beim Absenden des Formulars kann es sein, dass die Seite aufgrund der Netzwerkgeschwindigkeit usw. plötzlich langsam geladen wird und der Benutzer wiederholt auf klickt Wenn Sie auf die Schaltfläche „Senden“ klicken, werden mehrere Daten in der Datenbank generiert, was zu unkontrollierbaren Situationen führt.
Die folgende Situation führt beispielsweise dazu, dass das Formular wiederholt gesendet wird:
Klicken Sie zweimal auf die Schaltfläche „Senden“.
Klicken Sie auf die Schaltfläche „Aktualisieren“.
Verwenden Sie die Zurück-Schaltfläche des Browsers, um den vorherigen Vorgang zu wiederholen, was zu wiederholten Formularübermittlungen führt.
Formulare mithilfe des Browserverlaufs erneut senden.
Doppelte HTTP-Anfragen vom Browser.
Die Webseite wurde böswillig aktualisiert.
Es gibt mehrere Lösungen:
Erstens: Verwenden Sie js, um die Schaltfläche so einzustellen, dass sie nach dem Klicken grau wird
$(document).ready(function(){ $(input:submit).click(){ setTimeout(function(){obj.disabled=true;},100) }; });
Zweitens: Sitzung verwenden
Die Sitzung (das Tag, das beim Anfordern des Formulars generiert wird) wird im ausgeblendeten Feld des Formulars gespeichert.
Verwenden Sie diese Methode, um nach dem Empfang der Formulardaten zu überprüfen, ob der Flag-Wert vorhanden ist, löschen Sie ihn zuerst und verarbeiten Sie die Daten dann. Wenn er nicht vorhanden ist, bedeutet dies, dass er übermittelt wurde. Diese Übermittlung wird ignoriert .
//服务端生成随机数存入session, 分配至表单页 $data['sess_id'] = $_SESSION['sid'] = mt_rand(1000, 9999); $this->load->view('form', $data); //表单页隐藏域存放此session值 <input type="hidden" name="sid" value="<?=$sess_id; ?>"> //处理 if($_POST['sid'] != '' && $_POST['sid'] == $_SESSION['sid']) { unset($_SESSION['sid']); echo '处理数据'; } else { echo '已提交过表单'; }
Drei: Verwendung von Cookies
Das Prinzip ähnelt dem der Sitzung, aber sobald der Browser des Benutzers Cookies deaktiviert, wird diese Funktion ungültig
if(isset($_POST['submit'])){ setcookie("tempcookie","",time()+30); header("Location:".$_SERVER[PHP_SELF]);exit(); } if(isset($_COOKIE["tempcookie"])){ setcookie("tempcookie","",0);echo "您已经提交过表单"; }
Viertens: Verwenden Sie die Header-Funktion zum Springen
Sobald der Benutzer auf die Schaltfläche „Senden“ klickt, springen Sie nach der Verarbeitung der Daten zu anderen Seiten
if (isset($_POST['submit'])) { header('location:success.php');//处理数据后,转向到其他页面 }
Fünftens: Verwenden Sie die Datenbank, um Einschränkungen hinzuzufügen
Fügen Sie direkt eindeutige Einschränkungen hinzu oder erstellen Sie eindeutige Indizes in der Datenbank. Sobald festgestellt wird, dass der Benutzer wiederholt übermittelt hat, wird direkt eine Warnung oder Eingabeaufforderung ausgegeben,
oder Es werden nur die ersten übermittelten Daten verarbeitet. Eine direkte und effektive Methode erfordert eine sorgfältige Prüfung des frühen Datenbankdesigns
Das Obige stellt PHP-Methoden zur Lösung und Vermeidung wiederholter Übermittlung von Formularformularen vor, einschließlich relevanter Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.

PhpSessionStrackUserDataacrossMultiplePageRequestsusesuseiquiTIdStoredInacookie.her'ShowtomagetheFectiv: 1) StartaSessionswithSession_start () und storateatain $ _Session.2) regeneratethessionSessionInoginWithSession_IDENT_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTE_IDENTEL

In PHP können durch Sitzungsdaten in den folgenden Schritten iteriert werden: 1. Starten Sie die Sitzung mit Session_Start (). 2. Iterieren Sie durch die Foreach-Schleife durch alle Schlüsselwertpaare im $ _Session-Array. 3. Wenn Sie komplexe Datenstrukturen verarbeiten, verwenden Sie is_array () oder is_object () Funktionen und verwenden Sie print_r (), um detaillierte Informationen auszugeben. 4. Bei der Optimierung von Traversal kann Paging verwendet werden, um eine gleichzeitige Verarbeitung großer Datenmengen zu vermeiden. Auf diese Weise können Sie PHP -Sitzungsdaten in Ihrem tatsächlichen Projekt effizienter verwalten und verwenden.

Die Sitzung realisiert die Benutzerauthentifizierung über den serverseitigen Statusverwaltungsmechanismus. 1) Erstellung der Sitzung und Erzeugung eindeutiger IDs, 2) IDs werden durch Cookies weitergeleitet, 3) Server speichert und greift auf Sitzungsdaten über IDs, 4) Benutzerauthentifizierung und Statusverwaltung zugeordnet und verbessert die Sicherheit und die Benutzererfahrung von Anwendungen.

TostoreaussersnameInaphpSession, startTheSessionwithSession_Start (), thenAnthenameto $ _Session ['Benutzername']

Gründe für einen Phpessionsfehler sind Konfigurationsfehler, Cookie -Probleme und Sitzungsablauf. 1. Konfigurationsfehler: Überprüfen Sie die richtige Sitzung und setzen Sie die korrekte Sitzung. 2. Kookie -Problem: Stellen Sie sicher, dass der Cookie korrekt eingestellt ist. 3.Sesion läuft ab: Passen Sie die Sitzung an.

Zu den Methoden zur Debugg -Sitzungsprobleme in PHP gehören: 1. Überprüfen Sie, ob die Sitzung korrekt gestartet wird. 2. Überprüfen Sie die Lieferung der Sitzungs -ID; 3. Überprüfen Sie den Speicher und das Lesen von Sitzungsdaten. 4. Überprüfen Sie die Serverkonfiguration. Durch Ausgabe von Sitzungs-ID und Daten, Anzeigen von Sitzungsdateiinhalten usw. können Sie effektiv Diagnose und Lösen von Sitzungen im Zusammenhang mit Sitzungen diagnostizieren und lösen.

Mehrere Anrufe bei Session_Start () führen zu Warnmeldungen und möglichen Datenüberschreibungen. 1) PHP wird eine Warnung ausstellen und veranlassen, dass die Sitzung gestartet wurde. 2) Dies kann zu unerwarteten Überschreibungen von Sitzungsdaten führen. 3) Verwenden Sie Session_Status (), um den Sitzungsstatus zu überprüfen, um wiederholte Anrufe zu vermeiden.

Das Konfigurieren des Sitzungslebenszyklus in PHP kann durch Einstellen von Sitzungen erreicht werden. 1) Session.gc_maxLifetime steuert die Überlebenszeit der serverseitigen Sitzungsdaten, 2) Sitzung.cookie_Lifetime steuert den Lebenszyklus von Client-Cookies. Wenn der Keks auf 0 eingestellt ist, läuft es, wenn der Browser geschlossen ist.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft
