Preventing duplicate form submissions

后端 未结 3 1223
灰色年华
灰色年华 2020-12-16 01:19

I came up with a technique to prevent duplicate form submission by going back/forward or refreshing the page. And I thought about duscussing it here, I already tested a samp

3条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-16 01:46

    A simpler way to achieve what you want is to use redirect on submit. After you process a POST request you redirect, possibly even to the same page. This is a common pattern called "Redirect after POST" or POST/Redirect/GET.

    For example:

    
    
     ...
    
    ...

    By setting the action to "" then it will submit to itself, at which point the if($_POST) code block will validate to true and process the form, then redirect back to itself.

    Of course you probably want to redirect to a different page that shows a "your form has been submitted" response or put the form on a different page and have the HTML of this page be the response.

    The benefit of this method is that when you hit the back button it does a GET request so the form is not re-submitted.

    On Firefox, it will actually take the submission to itself out of the browser history so when users browse across the web and then hit back, instead of seeing the "thank you" page they see the form page.

提交回复
热议问题