2016-11-24 2 views
-2

Ich habe ein Formular, das Eingaben vom Benutzer nimmt, dann die Datenbank durchsucht und das Ergebnis anzeigt. Alles funktioniert gut, außer wenn der Benutzer den Browser aktualisiert, wird eine Warnung über die erneute Übermittlung angezeigt. Wenn ich erneut absende, bekomme ich die gleichen Daten, aber gibt es eine Möglichkeit, diese Warnung zu deaktivieren? Aktualisieren Sie nur und erhalten Sie die gleiche Ergebnismenge.Wiedervorlage des Formulars deaktivieren, wenn der Browser aktualisiert wird

Hier ist ein Screenshot. Re-submission alert Backend - PHP

+1

teilen Sie Ihren Code, wie Sie Seite neu laden? – C2486

+0

1.unset die Variablen während das Senden abgeschlossen ist. 2. Leite es um – Karthi

Antwort

0
you can use isset function 
if(isset($_POST['postname'])){ 
// your submission code 
} 
0

Sie sollten die PRG (Post/Redirect/Get) Konzept verwenden.

Die allgemeine Idee ist, dass wenn Sie nach dem POST den Benutzer auf eine neue Seite umleiten, und auf diese Weise, auch nach der Aktualisierung - das Formular nicht erneut eingereicht wird.

1

Dafür gibt es zwei Möglichkeiten. Wenn Ihr Formular keine Änderungen an den Daten vornimmt oder keine Benutzer anmeldet, können Sie von POST zu GET wechseln. Dies hat den zusätzlichen Vorteil, URLs zu erstellen, die vom Benutzer mit einem Lesezeichen versehen werden können.

Wenn Ihre Formularübergabe zu einer Datenänderung führt, sollten Sie weiterhin POST verwenden. Nachdem die Daten jedoch geändert wurden, sollten Sie den Benutzer auf die Seite umleiten, auf der die Ergebnisse angezeigt werden.

geht ungefähr so ​​

if(isset($_POST['postname'])){ 
    /** modify data here **/ 
    if ($data_changed) { 
     header("Location: /success/page/"); 
    } 
} 

Dies ist eine empfohlene Praxis und einem Standardmuster in vielen Frameworks. Django springt sofort in den Sinn.

0

Sie müssen umleiten, fügen Sie dies an das Ende Ihres Skripts.

header('Location: '.$_SERVER['REQUEST_URI']); 

Beachten Sie dies, bevor HTML ausgegeben wird.

-1

Nach dem Absenden der Seite müssen Sie auf die gleiche Seite oder was immer Seite umleiten, so dass es nicht erneut vorgelegt wird !!

Verwandte Themen