Home  >  Article  >  Backend Development  >  Principles and applications of PHP anti-shake and anti-duplicate submission technology

Principles and applications of PHP anti-shake and anti-duplicate submission technology

WBOY
WBOYOriginal
2023-10-12 12:16:411204browse

PHP 防抖和防重复提交技术的原理与应用

Principles and Applications of PHP Anti-Shake and Anti-Duplicate Submission Technology

With the development of the Internet, users often experience frequent clicks or duplication when operating web pages. Submitted, this will bring certain burden and security risks to the system. To solve this problem, developers often employ anti-shaking and anti-duplicate submission techniques. This article will introduce the principles of anti-shake and anti-resubmit technology in PHP and give corresponding code examples.

1. Principle and application of anti-shake technology

Anti-shake technology aims to solve the problem of users’ frequent clicks or operations. It achieves the purpose of reducing invalid requests by delaying execution or merging multiple operations. . Its principle mainly relies on Javascript's setTimeout function and closure.

1.1 Principle

When the user performs frequent click actions, we can use the setTimeout function to delay the execution of the function. If the event is triggered again within the delay time, the previous timer will be cleared and restarted. Timing. Only when the user stops operating for a certain period of time will the execution function be actually triggered.

1.2 Application

In PHP projects, anti-shake technology can be implemented through front-end JS code. The specific steps are as follows:

Step 1: Introduce the jQuery library into the page or yourself Implemented JS library.

Step 2: Write the anti-shake function, as shown below:

function debounce(func, delay) {
  let timer = null;
  return function() {
    clearTimeout(timer);
    timer = setTimeout(function() {
      func.apply(this, arguments)
    }, delay);
  }
}

Step 3: Call the anti-shake function, as shown below:

$('button').click(debounce(function() {
  // 处理点击事件的业务逻辑
}, 1000));

2. Anti-duplicate submission technology Principles and Applications

Anti-duplicate submission technology is used to solve the problem of users repeatedly submitting forms, mainly by generating unique identification tokens. The principle can be divided into two parts: the front end generates the token, and the back end verifies the token.

2.1 Front-end generates token

Before the user submits the form, the front-end will generate a unique token and store it in sessionStorage or cookie. The way to generate tokens can be through encryption algorithms or random numbers.

function generateToken() {
  var token = ''; 
  // 生成唯一不重复的token的逻辑代码
  return token;
}

Before the form is submitted, the token is passed to the backend as the value of the hidden field.

<form action="submit.php" method="post">
  <input type="hidden" name="token" value="<?php echo generateToken(); ?>">
  <!-- 表单的其他控件 -->
  <input type="submit" value="提交">
</form>

2.2 Backend verification token

After the backend receives the form submission, the token needs to be verified. If the token verification passes, the business logic of the form is processed and the token is cleared from sessionStorage or cookies to prevent repeated submissions.

session_start();
$token = $_POST['token'];

if (isset($_SESSION['token']) && $_SESSION['token'] === $token) {
  // token验证通过
  unset($_SESSION['token']); // 清除token
  // 处理表单提交的业务逻辑
} else {
  // token验证失败,返回错误提示
}

3. Summary

This article introduces the principles and applications of PHP anti-shake and anti-duplicate submission technology. Anti-shake technology reduces the sending of invalid requests by delaying execution or merging operations. Anti-repetitive submission technology prevents repeated submission of forms by generating tokens to ensure data accuracy and security. In actual development, we can choose appropriate technologies to apply based on project needs to improve system performance and user experience.

Reference:

  1. [Anti-shake mechanism](https://www.jianshu.com/p/76bdffb2a268)
  2. [How to prevent form submission Duplicate data](https://segmentfault.com/a/1190000017279731)

The above is the detailed content of Principles and applications of PHP anti-shake and anti-duplicate submission technology. 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