1 Server-side solution. This is my most recommended method. The advantage is accurate judgment and maximum compatibility.
Method: Display the form on page a, then submit page b for processing, and then redirect to page c to display the results after processing.
1.0 Generate a flag ID in the session when accessing a page, for example
//Pseudocode
session("submitID")=random()
Then put this The value is written into a hidden input of the form
//Pseudocode
")%>
1.1 When processing the b page, determine whether the value of submitID2 submitted by the form is consistent with the session The submitIDs are consistent. If they are inconsistent, they will be redirected to the error page. If they are consistent, clear the submitID in the session and then process the form.
//Pseudocode
session("submitID")=""
/ /Then process the submission...
Redirect to the c page after the processing is completed
1.2 The c page actually has nothing to say, it is a page that displays the processing results
2 The client uses js to solve it
This method is not good because it will inevitably encounter compatibility issues with different browsers, and it can definitely be bypassed. The only advantage is that it is simple and does not require too much coding
2.0 Prevent backing
Add this code at the top of each page
2.1 Prevent refresh
It’s hard for me to think of a good way to do it Because there are too many places to block, I have to use a terrible method: