Maison  >  Article  >  développement back-end  >  Technologie PHP anti-shake : garantit l'exactitude et la validité des données soumises par les utilisateurs

Technologie PHP anti-shake : garantit l'exactitude et la validité des données soumises par les utilisateurs

WBOY
WBOYoriginal
2023-10-12 12:48:24733parcourir

PHP 防抖技术:确保用户提交的数据准确性与有效性

Technologie PHP anti-shake : garantir l'exactitude et la validité des données soumises par les utilisateurs

Avec le développement rapide d'Internet, l'interactivité des utilisateurs des applications Web est devenue de plus en plus importante. Les utilisateurs saisissent souvent des données dans des formulaires et les soumettent au serveur pour traitement. Cependant, en raison de retards sur le réseau ou de mauvaises opérations des utilisateurs, des soumissions répétées se produisent parfois, affectant l'exactitude et la validité des données. Afin de résoudre ce problème, la technologie PHP anti-shake a vu le jour.

La technologie PHP anti-shake peut garantir que les données soumises par l'utilisateur ne seront traitées qu'une seule fois, évitant ainsi les problèmes causés par des soumissions répétées. La mise en œuvre de cette technologie est relativement simple et sera présentée en détail ci-dessous avec des exemples de code spécifiques.

Le principe de la technologie anti-shake est de retarder le moment de soumission de l'utilisateur. Ce n'est que lorsque l'utilisateur cesse de fonctionner pendant un certain temps que les données sont effectivement soumises au serveur pour traitement. Dans une implémentation spécifique, le traitement anti-shake peut être effectué sur le front-end via JavaScript, ou le traitement anti-shake peut être effectué sur le back-end via PHP. Ici, nous prenons comme exemple l'anti-shake PHP back-end.

Supposons que nous ayons un formulaire contenant des champs de nom d'utilisateur et de mot de passe et que nous devions empêcher les utilisateurs de soumettre le formulaire à plusieurs reprises. Tout d’abord, nous devons ajouter un morceau de code JavaScript sur le front-end pour obtenir l’effet anti-tremblement.

// 防抖函数
function debounce(fn, delay) {
  let timerId;
  
  return function() {
    clearTimeout(timerId);
    
    const that = this;
    const args = arguments;
    
    timerId = setTimeout(function() {
      fn.apply(that, args);
    }, delay);
  };
}

// 表单提交处理函数
function handleSubmit() {
  // 获取表单数据,进行表单验证等操作
  
  // 提交表单数据给服务器进行处理
  // ...
}

// 绑定防抖处理函数至表单提交事件
const form = document.querySelector('#form');
const debouncedSubmit = debounce(handleSubmit, 1000);
form.addEventListener('submit', debouncedSubmit);

Dans le code ci-dessus, nous utilisons une fonction debounce pour obtenir l'effet anti-tremblement. Dans l'événement de soumission de formulaire, nous lions la fonction de traitement de soumission de formulaire handleSubmit à la fonction de traitement anti-rebond debouncedSubmit et définissons un délai de 1 seconde. De cette manière, lorsque l'utilisateur soumet le formulaire, la fonction de traitement de soumission du formulaire ne sera déclenchée qu'après avoir arrêté l'opération pendant 1 seconde. debounce 函数来实现防抖的效果。在表单提交事件中,我们将表单提交处理函数 handleSubmit 绑定到防抖处理函数 debouncedSubmit,并设置了 1 秒的延迟时间。这样,当用户提交表单时,只有在停止操作 1 秒后,才会真正触发表单提交处理函数。

接下来,我们在后端 PHP 代码中,也进行相应的防抖处理。

<?php
session_start();

function handleFormSubmit() {
  if (isset($_SESSION['last_submit']) && time() - $_SESSION['last_submit'] < 1) {
    // 忽略重复提交的操作
    return;
  }
  
  // 处理表单提交数据
  // ...
  
  $_SESSION['last_submit'] = time();
}

handleFormSubmit();
?>

在后端 PHP 代码中,我们使用了 $_SESSION 变量来记录上次表单提交的时间。在表单提交处理函数 handleFormSubmit

Ensuite, nous effectuons également le traitement anti-shake correspondant dans le code PHP back-end.

rrreee

Dans le code PHP backend, nous utilisons la variable $_SESSION pour enregistrer l'heure de la dernière soumission du formulaire. Dans la fonction de traitement de soumission de formulaire handleFormSubmit, nous déterminons s'il s'agit d'une soumission répétée en jugeant la différence entre l'heure de la dernière soumission et l'heure actuelle. Si plusieurs soumissions se produisent en 1 seconde, ignorez les soumissions en double et revenez directement, sinon continuez le traitement des données de soumission.

Grâce au traitement anti-shake du JavaScript frontal et au traitement anti-shake du PHP back-end, nous garantissons que les données soumises par les utilisateurs ne seront traitées qu'une seule fois au cours d'une certaine période de temps, évitant ainsi les problèmes causés par des soumissions. Cela peut améliorer efficacement l’expérience utilisateur et garantir l’exactitude et la validité des données. 🎜🎜En résumé, la technologie PHP anti-shake est un moyen technique important pour garantir l'exactitude et la validité des données soumises par les utilisateurs. Dans le développement réel, nous pouvons choisir la méthode de mise en œuvre anti-secousse appropriée en fonction des besoins spécifiques et ajuster le temps de retard anti-secousse en fonction de la situation réelle. De cette manière, nous pouvons garantir que les données soumises par les utilisateurs sont traitées correctement et améliorer l'expérience utilisateur. 🎜

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:
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