Maison développement back-end tutoriel php Comparaison des méthodes d'implémentation de PHP anti-shake et anti-duplicata

Comparaison des méthodes d'implémentation de PHP anti-shake et anti-duplicata

Oct 12, 2023 am 10:36 AM
防抖 关键词: php Empêcher les soumissions en double

PHP 防抖和防重复提交的实现方式对比

Comparaison des méthodes d'implémentation de l'anti-rebond PHP et de la soumission anti-duplicate

Lors du développement d'applications Web, nous rencontrons souvent des situations où l'anti-rebond (Debounce) et la prévention de la soumission de formulaire en double (Empêcher la soumission de formulaire en double) sont nécessaires. Anti-shake signifie que lorsque l'utilisateur déclenche fréquemment un événement, nous souhaitons exécuter uniquement la dernière action déclenchée, tandis que la soumission anti-répétitive signifie que lorsque l'utilisateur soumet le formulaire plusieurs fois dans un court laps de temps, nous devons nous assurer que une seule soumission est traitée. Cet article se concentrera sur la comparaison et l'introduction de plusieurs façons d'obtenir l'anti-secousse et l'anti-resoumission en PHP, et fournira des exemples de code spécifiques.

  1. Comment mettre en œuvre l'anti-secousse
    L'anti-secousse peut être configuré en réglant une minuterie pour retarder l'opération correspondante pendant une certaine période de temps après le dernier événement déclencheur. Voici un exemple de code qui utilise PHP pour obtenir un anti-shake :
function debounce($callback, $delay) {
    $timer = null;
    
    return function() use ($callback, $delay, &$timer) {
        if ($timer !== null) {
            clearTimeout($timer);
        }
        
        $timer = setTimeout($callback, $delay);
    };
}

// 使用防抖函数处理表单提交事件
$debouncedHandler = debounce(function() {
    // 处理表单提交逻辑
}, 1000);

// 绑定事件处理函数
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $debouncedHandler();
}
Copier après la connexion
  1. Comment empêcher les soumissions répétées
    La prévention des soumissions répétées de formulaires peut être obtenue des manières suivantes :

2.1. Vérification du jeton
En utilisant le jeton. vérification, nous pouvons générer un identifiant unique pour chaque demande de formulaire et stocker l'identifiant dans la session. Lorsque l'utilisateur soumet le formulaire, nous vérifions d'abord si l'identifiant existe et s'il est cohérent avec l'identifiant présent dans la demande pour déterminer s'il s'agit d'une soumission répétée. Voici un exemple de code qui utilise PHP pour implémenter la vérification du jeton :

session_start();

function generateToken() {
    return md5(uniqid(rand(), true));
}

function validateToken($token) {
    // 从 session 中获取 token
    $storedToken = $_SESSION['token'];

    return $storedToken && $token === $storedToken;
}

function removeToken() {
    // 从 session 中移除 token
    unset($_SESSION['token']);
}

// 生成 Token 并存储在 session 中
$_SESSION['token'] = generateToken();

// 处理表单提交逻辑
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $token = $_POST['token'];

    if (validateToken($token)) {
        // 执行表单提交操作
        // ...

        // 提交完成后移除 Token
        removeToken();
    } else {
        // Token 验证失败,可能是重复提交
        // 提示用户不要重复提交
    }
}
Copier après la connexion

2.2.2.2. Redirection
L'utilisation de la redirection pour gérer les sauts de page après la soumission du formulaire peut empêcher efficacement les utilisateurs de soumettre le formulaire à plusieurs reprises. Lorsque l'utilisateur soumet le formulaire, nous gérons d'abord la logique de soumission, puis utilisons la fonction d'en-tête pour rediriger l'utilisateur vers une nouvelle page. Voici un exemple de code qui implémente une redirection à l'aide de PHP :

// 处理表单提交逻辑
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 执行表单提交操作
    // ...

    // 重定向到新页面
    header("Location: success.php");
    exit;
}
Copier après la connexion

La page success.php 是一个提示用户提交成功的页面,这样即使用户按下刷新按钮,也只会刷新 success.php dans le code ci-dessus sans soumettre à nouveau le formulaire.

Résumé :
En comparant les méthodes d'implémentation de l'anti-shaking et de la soumission anti-duplicata PHP, nous pouvons choisir la manière appropriée de protéger nos applications en fonction de besoins spécifiques. L'anti-shake convient aux situations dans lesquelles les utilisateurs doivent éviter de déclencher des événements fréquemment, tandis qu'empêcher l'envoi répété de formulaires consiste à empêcher les utilisateurs de soumettre des formulaires plusieurs fois. L'utilisation de la vérification et de la redirection des jetons est deux méthodes courantes et réalisables. Les développeurs peuvent choisir la méthode appropriée pour empêcher les soumissions répétées en fonction de la situation réelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Utiliser la réflexion Golang pour implémenter la traversée et la modification des champs de structure Utiliser la réflexion Golang pour implémenter la traversée et la modification des champs de structure Apr 03, 2024 pm 12:06 PM

La réflexion Go peut être utilisée pour parcourir et modifier les champs de structure. Traversée de champs : utilisez Reflect.TypeOf et Reflect.Field pour parcourir les champs de structure. Modification des champs : Accédez et modifiez les valeurs des champs de la structure via Elem et Set. Cas pratique : Utilisez la réflexion pour convertir la structure en carte, puis convertissez la carte en JSON.

Analyse de sécurité de la soumission anti-shake et anti-duplicata en PHP Analyse de sécurité de la soumission anti-shake et anti-duplicata en PHP Oct 12, 2023 pm 02:54 PM

Analyse de sécurité des soumissions anti-shake et anti-duplicata en PHP Introduction : Avec le développement de sites Web et d'applications, les formulaires Web sont devenus l'un des moyens importants d'interagir avec les utilisateurs. Une fois que l'utilisateur a rempli le formulaire et cliqué sur le bouton Soumettre, le serveur recevra et traitera les données soumises. Cependant, en raison de retards sur le réseau ou de mauvaises opérations de l'utilisateur, le formulaire peut être soumis plusieurs fois. Les soumissions répétées augmenteront non seulement la charge sur le serveur, mais peuvent également entraîner divers problèmes de sécurité, tels que l'insertion répétée de données, des opérations non autorisées, etc. Afin de résoudre ces problèmes, nous pouvons utiliser l'anti-shake

Comment utiliser PHP pour développer des fonctions simples de barre de navigation et de collecte d'URL Comment utiliser PHP pour développer des fonctions simples de barre de navigation et de collecte d'URL Sep 20, 2023 pm 03:14 PM

Comment utiliser PHP pour développer une barre de navigation simple et une fonction de collection de sites Web. La barre de navigation et la fonction de collection de sites Web sont l'une des fonctions courantes et pratiques du développement Web. Cet article expliquera comment utiliser le langage PHP pour développer une barre de navigation simple et une fonction de collecte d'URL, et fournira des exemples de code spécifiques. Créer une interface de barre de navigation Tout d'abord, nous devons créer une interface de barre de navigation. La barre de navigation contient généralement des liens permettant une navigation rapide vers d'autres pages. Nous pouvons utiliser HTML et CSS pour concevoir et organiser ces liens. Ce qui suit est une interface de barre de navigation simple

Qu'est-ce que Vue Anti-Shake ? Qu'est-ce que Vue Anti-Shake ? Jul 20, 2022 pm 06:46 PM

Dans Vue, anti-shake signifie exécuter le rappel n secondes après le déclenchement de l'événement. S'il est à nouveau déclenché dans ces n secondes, le temps sera redémarré, c'est-à-dire : lorsqu'un événement est déclenché en continu, il y aura ; plus d'appels dans un certain intervalle de temps. Lorsqu'un événement est déclenché, la fonction de traitement d'événement sera exécutée une fois. Si l'événement est à nouveau déclenché avant l'arrivée de l'intervalle de temps défini, le délai recommencera.

Tutoriel PHP et GMP : Comment implémenter la multiplication de grands nombres Tutoriel PHP et GMP : Comment implémenter la multiplication de grands nombres Jul 29, 2023 pm 03:29 PM

Tutoriel PHP et GMP : Comment implémenter la multiplication de grands nombres Introduction : Lorsque nous devons traiter de grands entiers en programmation, les types entiers ordinaires ne peuvent pas répondre aux besoins. En PHP, l'extension GMP (GNUMultiplePrecision) offre la possibilité de gérer des entiers de précision arbitraire. Ce tutoriel se concentrera sur la façon d'utiliser l'extension GMP de PHP pour implémenter la multiplication de grands nombres. Installer et activer l'extension GMP Avant de commencer, nous devons nous assurer que PHP a l'extension GMP installée et activée. D'ACCORD

Comparaison des méthodes d'implémentation de PHP anti-shake et anti-duplicata Comparaison des méthodes d'implémentation de PHP anti-shake et anti-duplicata Oct 12, 2023 am 10:36 AM

Comparaison des méthodes d'implémentation PHP anti-shake et anti-duplicata Lors du développement d'applications Web, nous rencontrons souvent des situations où l'anti-rebond (Debounce) et la soumission anti-duplicata (PreventingDuplicateFormSubmission) sont requis. Anti-shake signifie que lorsque l'utilisateur déclenche fréquemment un événement, nous souhaitons exécuter uniquement la dernière action déclenchée, tandis que la soumission anti-répétitive signifie que lorsque l'utilisateur soumet le formulaire plusieurs fois dans un court laps de temps, nous devons nous assurer que une seule soumission est traitée. Livre

Principes et applications de la technologie PHP anti-shake et anti-duplicata de soumission Principes et applications de la technologie PHP anti-shake et anti-duplicata de soumission Oct 12, 2023 pm 12:16 PM

Principes et applications de la technologie PHP Anti-Shake et Anti-Duplicate Submission Avec le développement d'Internet, les utilisateurs cliquent souvent fréquemment ou de manière répétée sur submit lorsqu'ils utilisent des pages Web, ce qui entraînera certaines charges et risques de sécurité pour le système. Pour résoudre ce problème, les développeurs emploient souvent des techniques de soumission anti-tremblement et anti-doublon. Cet article présentera les principes de la technologie anti-shake et anti-resoumission en PHP et donnera des exemples de code correspondants. 1. Principe et application de la technologie anti-shake La technologie anti-shake vise à résoudre le problème des clics ou opérations fréquents des utilisateurs en retardant l'exécution ou en combinant.

Comprendre les perspectives d'application de la technologie PHP anti-shake dans le développement réel Comprendre les perspectives d'application de la technologie PHP anti-shake dans le développement réel Oct 12, 2023 pm 01:42 PM

Pour comprendre les perspectives d'application de la technologie PHP anti-shake dans le développement réel, des exemples de code spécifiques sont nécessaires. Avec le développement continu d'Internet, de plus en plus d'applications Web doivent traiter les entrées des utilisateurs, telles que la complétion automatique du champ de recherche, le chargement progressif, vérification du formulaire, etc. attendez. Cependant, lorsque les utilisateurs tapent ou font défiler rapidement, un grand nombre de requêtes peuvent être déclenchées, entraînant une dégradation des performances du système, voire un crash. Pour résoudre ce problème, les développeurs peuvent utiliser la technologie anti-shake, qui retarde le déclenchement des requêtes, réduisant ainsi la pression sur le serveur et améliorant l'expérience utilisateur. PHP est largement

See all articles