Home  >  Article  >  Backend Development  >  PHP method to prevent repeated form submission_PHP tutorial

PHP method to prevent repeated form submission_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 09:45:05842browse

php method to prevent repeated form submission

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

 2

 3

 4

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

 14

 15

 16

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

 07

Instructions

 08

 09

 10

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}?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1043516.htmlTechArticlephp method to prevent repeated submission of forms. When users submit the form, it may be due to network speed or the webpage is maliciously refreshed, resulting in The same record is inserted into the database repeatedly, which is a problem...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn