Wie kann ich verhindern, dass die Schaltflächen "Zurück" und "Aktualisieren" das Formular erneut senden?
Ich bin dabei web-Entwicklung.
Habe ich eine Seite zu tun, mit Kreditkarte, die, wenn Benutzer klicken Sie auf "aktualisieren" oder "Zurück", wird die Transaktion durchgeführt werden, man mehr Zeit, die unerwünscht ist.
Diese include-Browser oben Links auf "Zurück" & "Aktualisieren" - button, "Rechte Maustaste->Aktualisieren/Zurück", drücken Sie "F5" - Taste.
Dies geschieht über bestimmte cgi-Seite nur, und nicht alle von Ihnen.
Geht das mit Javascript? Oder eine andere Methode?
InformationsquelleAutor der Frage | 2009-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den standard Weg ist, es zu tun in 3 Schritten.
InformationsquelleAutor der Antwort vartec
Dieser bricht das basic-browser-user-experience-Modell...Nutzer sollten immer in der Lage, verwenden Sie die Refresh-und Zurück-buttons in Ihrem browser. Empfehlen, dass Sie fix Ihre Seite ein anderer Weg.
Wenn Sie aktualisieren Sie Ihre Frage an den server-Sprache/Plattform/Technologie, dass Sie verwenden dann jemand möglicherweise eine Lösung vorschlagen.
InformationsquelleAutor der Antwort Richard Everett
Die einfache Tatsache, dass Wiedervorlage die form erzeugt eine doppelte Transaktion ist besorgniserregend. Sie sollten haben eine Art von überprüfen, um sicherzustellen, dass jedes senden von Formular-Daten ist einzigartig.
Beispielsweise die Seite, die Sie würde senden Sie das Formular mit einer eindeutigen ID, die wird mit dem Formular verschickt. Die business-Logik sollte dann in der Lage sein zu erkennen, dass das Formular eingereicht hat, bereits verarbeitet wurde (wie die (nicht mehr) eindeutige ID der gleiche sein wird), so ignoriert der zweite Versuch.
Den "standard-Weg" immer noch nicht stoppen der clients durch klicken auf die zurück-Taste zweimal... oder ging sogar zurück und Wiedervorlage die form, wenn Sie Sie glaube nicht, dass (warum auch immer) es verarbeitet wurde.
InformationsquelleAutor der Antwort James Camfield
generiert einen zufälligen string und speichern Sie es in der Sitzung,
dann Ausgabe, die es zu Ihrem Formular als hidden-Wert,
überprüfen Sie die abgegebene und store-variable, wenn die Streichhölzer die Bearbeitung Ihrer Anfrage
gehe zu 1.
InformationsquelleAutor der Antwort Anonymous
Diesen code platzieren Sie auf der form-Seite
InformationsquelleAutor der Antwort
Sollte man nicht versuchen zu "blockieren" diese Aktionen.
Was Sie tun sollten, ist sicherzustellen, dass nichts happends, wenn jemand "double unterwirft" form.
InformationsquelleAutor der Antwort andi
und in einigen browser Sie nicht einmal tun, und das ist gut!
InformationsquelleAutor der Antwort Tobias
Ist der beste Weg, um genügend session-handling Logik, dass Sie erkennen kann, das 2. (und weiter) Versuch wie "das ist nur ein re-submission" und es ignorieren.
InformationsquelleAutor der Antwort Vatine
Ich nicht sehen das hier so ist es hier.
Wenn die session-variable nicht gefunden wird, wird das Formular nicht verarbeitet werden. Da die variable wird entfernt, sobald seine gefunden, das Formular kann nur ausgeführt werden, durch drücken der submit-Schaltfläche. Aktualisieren und wieder wird nicht das Formular abschicken. Dies funktioniert ohne die Benutzung einer Umleitung.
InformationsquelleAutor der Antwort Malcolm Cooper