Home > Article > Backend Development > How to implement anti-shaking and anti-resubmission functions in PHP
How to implement anti-shake and anti-duplicate submission functions in PHP
In web development, anti-shake and anti-duplicate submission are two common problems. Anti-shake is used to handle frequently triggered events to prevent excessive requests; anti-repetitive submission is to prevent users from submitting the same form multiple times. This article will introduce how to implement these two functions in PHP and provide specific code examples.
1. Implementation of anti-shake function
The anti-shake function mainly performs only one specified operation within a certain period of time. In PHP, you can use session to achieve anti-shake function. The specific steps are as follows:
<?php session_start(); function debounce($callback, $delay = 1000) { if(isset($_SESSION['debounce_timer'])) { return; } $callback(); $_SESSION['debounce_timer'] = time() + $delay; register_shutdown_function('debounce_reset_timer'); } function debounce_reset_timer() { unset($_SESSION['debounce_timer']); }
<?php function handleInput() { // 处理AJAX请求 } debounce('handleInput', 1000);
Among them, handleInput()
is the function that handles the AJAX request, and 1000 is the anti-shake delay time. When the user enters When inputting into the box, the handleInput()
function will be called after 1 second. If the user continuously inputs, only the last input operation will be performed.
2. Implementation of anti-repeated submission function
Preventing users from resubmitting forms is a very common requirement. The anti-re-submission function can be achieved by using tokens. The specific steps are as follows:
<?php session_start(); function generateToken() { $_SESSION['submit_token'] = md5(uniqid(rand(), true)); return $_SESSION['submit_token']; } $token = generateToken();
<input type="hidden" name="submit_token" value="<?php echo $token; ?>">
<?php session_start(); function validateToken($token) { if(isset($_SESSION['submit_token']) && $token === $_SESSION['submit_token']) { unset($_SESSION['submit_token']); return true; } return false; } if($_POST && validateToken($_POST['submit_token'])) { // 处理表单提交逻辑 }
Through the above implementation, when the user submits the form, PHP will verify whether the submitted token matches the token in the session. If they match, the form processing logic will be executed; if they do not match, it means it is a duplicate. Submit, you can do corresponding processing, such as prompting the user.
Summary
Through the cooperation of session and token, the anti-shake and anti-resubmission functions can be implemented in PHP. The specific implementation steps have been introduced in detail in this article, and corresponding code examples are provided for reference. I hope it will be helpful to you.
The above is the detailed content of How to implement anti-shaking and anti-resubmission functions in PHP. For more information, please follow other related articles on the PHP Chinese website!