Home  >  Article  >  Backend Development  >  How to prevent form from being submitted repeatedly in php

How to prevent form from being submitted repeatedly in php

(*-*)浩
(*-*)浩Original
2019-09-27 14:48:312985browse

How to prevent form from being submitted repeatedly

How to prevent form from being submitted repeatedly in php

Introducing a cookie mechanism to solve the problem(Recommended learning: PHP Programming From entry to proficiency)

The user submits the form to the backend and marks it in the cookie. Repeated submissions within the specified time will be invalid. But this method will fail if the user disables cookies.

<?php
  
if (isset($_COOKIE[&#39;formFlag&#39;])) {
  exit(&#39;error&#39;);
}
  
// 处理数据
  
// 30秒内重复提交无效
setcookie(&#39;formFlag&#39;, time(), time() + 30);

Session

When displaying the form page, a random number is generated and stored in the Session and the hidden field of the form. When submitting for the first time, compare and successfully delete the value in the Session.

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.

<?php
  
if (!isset($_SESSION[&#39;formFlag&#39;]) || $_POST[&#39;formFlag&#39;] != $_SESSION[&#39;formFlag&#39;]) {
  exit(&#39;error&#39;);
}
  
// 处理数据
  
unset($_SESSION[&#39;formFlag&#39;]);

The above is the detailed content of How to prevent form from being submitted repeatedly in php. For more information, please follow other related articles on the PHP Chinese website!

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