Home > Article > Backend Development > PHP method to prevent repeated form submission_PHP tutorial
When users submit a form, the same record may be repeatedly inserted into the database due to network speed, or the web page is maliciously refreshed. This is A rather tricky question. We can start from the client and server side together to try to avoid repeated submission of the same form.
1.Use client script
[Code] xm l code:
1
When the user clicks the "Submit" button, the button will become gray and unavailable
In the above example, the on click event is used to detect the user's submission status. If the "Submit" button is clicked, the button is immediately set to an invalid state, and the user cannot click the button to submit again.
There is another method, which also uses the function of java vasscript, but uses the on submit() method. If the form has been submitted once, a dialog box will pop up immediately. The code is as follows:
[Code] xm l code:
01
02 var submitcount=0;
03 function submitOnce (form){
04 if (submitcount == 0){
05 submitcount ;
06 return true;
07 } else{
08 alert("Under operation, please do not resubmit, thank you!");
09 return false;
10}
11}
12
13
In the above example, if the user has clicked the "Submit" button, the script will automatically record the current status and increase the submitcount variable by 1. When the user attempts to submit again, the script determines that the submitcount variable value is non-zero. Prompts the user that the form has been submitted to avoid repeated submission of the form.
2. Use session (this is the same as JSP processing method)
Using PHP’s Session function can also avoid repeated form submissions. Session is saved on the server side. The Session variable can be changed while PHP is running. The next time you access this variable, you will get the newly assigned value. Therefore, you can use a Session variable to record the value submitted by the form. If it does not match, it is considered It is the user who is submitting repeatedly.
Code of page A:
[Code]php code:
01
02 session_start(); //Generate random numbers based on the current SESSION
03 $code = mt_rand(0,1000000);
04 $_SESSION['code'] = $code; //Temporarily store this random number into session
05 ?>
06
B page:
[Code]php code:
01
02session_start();
03if(isset($_POST['originator'])) {
04 if($_POST['originator'] == $_SESSION['code']){
05 echo "ok";
06 unset($_SESSION["code"]); //Clear it and pressing F5 again will have no effect
07 }else{
08 echo "Please do not refresh this page or submit the form repeatedly";
09}
10}?>