Home  >  Article  >  Backend Development  >  php prevents forms from being submitted repeatedly, php prevents forms from being submitted_PHP tutorial

php prevents forms from being submitted repeatedly, php prevents forms from being submitted_PHP tutorial

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

php prevents repeated form submission, php prevents form submission

When users submit the form, the same record may be repeatedly inserted into the database due to network speed, or the webpage is maliciously refreshed. , this is a more difficult 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

[php] view plaincopy ​
  1. "post" name="register" action="test.php" enctype="multipart/form-data">
  2. "text" type="text" id="text" />
  3. "cont" value="Submit" type="button" onClick="document.register.cont.value='Submitting, please wait ...';document.register.cont.disabled=true;document.the_form.submit();">


When the user clicks the "Submit" button, the button will become gray and unavailable
In the above example, the OnClick event is used to detect the user's submission status. If the "Submit" button is clicked, the button will 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 JavaScript, but uses the OnSubmit() method. If the form has been submitted once, a dialog box will pop up immediately. The code is as follows:

[php] view plaincopy ​
  1. "the_form" method="post" action="" onSubmit="return submitOnce(this)">
  2. "text" type="text" id="text" />
  3. "cont" value="submit" type="submit">




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 will determine The submitcount variable value is non-zero, indicating that the user has submitted the form, thereby avoiding 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 submission of forms. 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:

[php] view plaincopy ​
  1. session_start();                                                                                  $code = mt_rand(0,1000000);
  2. $_SESSION[
  3. 'code'] =
  4. $code; //Temporarily store this random number into the session ?>
  5. "form1" name="form1" method=
  6. "post" action="t2.php">

    Description "text" name=

  7. "titile" />
  8.           "hidden" name=
  9. "originator" value=
  10. "">

     

    "submit" name=

  11. "Submit" value=
  12. "Submit" />

B page:


[php]
view plaincopy ​

    session_start();
  1. if(isset(
  2. $_POST[
  3. 'originator'])) { if(
  4. $_POST[
  5. 'originator'] == $_SESSION['code']){ echo
  6. "ok";
  7. unset($_SESSION[
  8. "code"]);
  9. //Clear it and pressing F5 again will have no effect }else{
  10.  echo
  11. "Please do not refresh this page or submit the form repeatedly";
  12.  } 
  13. }?>
  14. http://www.bkjia.com/PHPjc/1040165.html

    www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1040165.htmlTechArticlephp prevents the form from being submitted repeatedly. php prevents form submission. When the user submits the form, it may be due to network speed or the webpage is blocked. Malicious refresh causes the same record to be repeatedly inserted into the database...
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