Maison  >  Article  >  développement back-end  >  Technologie anti-shake PHP pratique : évitez la soumission répétée de données

Technologie anti-shake PHP pratique : évitez la soumission répétée de données

PHPz
PHPzoriginal
2023-10-12 12:03:571127parcourir

实战 PHP 防抖技术:避免数据被重复提交

Technologie pratique anti-shake PHP : évitez la soumission répétée de données

Dans le développement Web, nous rencontrons souvent des scénarios qui obligent les utilisateurs à soumettre des données. Si l'utilisateur clique plusieurs fois sur le bouton de soumission dans un court laps de temps, les données peuvent être soumises à plusieurs reprises, causant des problèmes inutiles au système et aux utilisateurs. Afin de résoudre ce problème, nous pouvons utiliser la technologie PHP anti-shake pour éviter que les données ne soient soumises à plusieurs reprises. Cet article donnera des exemples de code spécifiques pour aider les lecteurs à implémenter la technologie PHP anti-shake.

Le principe de la technologie PHP anti-shake est de sauvegarder les données soumises lorsque vous cliquez sur le bouton de soumission, puis dans un certain intervalle de temps, si l'utilisateur clique à nouveau sur le bouton, cela sera considéré comme une soumission répétée. Voici un exemple de code spécifique :

session_start();

function debounce($key, $time) {
    // 获取最后一次提交的时间
    $lastSubmit = isset($_SESSION[$key]) ? $_SESSION[$key] : 0;
    
    // 判断距离最后一次提交的时间是否大于指定的时间间隔
    if (time() - $lastSubmit < $time) {
        return true; // 重复提交
    } else {
        $_SESSION[$key] = time(); // 更新最后一次提交的时间
        return false; // 非重复提交
    }
}

// 获取提交的数据
$data = $_POST['data'];

// 判断是否为重复提交
if (debounce('submit_key', 3)) {
    echo '请勿重复提交数据!';
} else {
    // 处理提交的数据
    // ...

    echo '数据提交成功!';
}

Dans le code ci-dessus, nous utilisons $_SESSION pour enregistrer l'heure de la dernière soumission. La fonction debounce accepte deux paramètres : $key est utilisé pour identifier les différentes actions de soumission, et $time spécifie l'intervalle de temps. Si le temps écoulé depuis la dernière soumission est inférieur à l'intervalle de temps spécifié, il est considéré comme une soumission répétée, sinon l'heure de la dernière soumission est mise à jour ; $_SESSION 来保存最后一次提交的时间。debounce 函数接受两个参数:$key 用于标识不同的提交动作,$time 指定时间间隔。如果距离最后一次提交的时间小于指定的时间间隔,则判断为重复提交;否则更新最后一次提交的时间。

在实际应用中,我们可以根据需要在提交表单的页面中调用 debounce 函数,传递不同的 $key$time

Dans les applications réelles, nous pouvons appeler la fonction debounce dans la page où le formulaire est soumis selon les besoins, en passant différents $key et $time Effectuez les réglages anti-tremblement.

En plus d'utiliser la technologie PHP anti-shake, nous pouvons également utiliser la technologie frontale pour éviter la soumission répétée de données. Par exemple, désactivez le bouton après avoir cliqué sur le bouton Soumettre, puis activez le bouton jusqu'à ce que la soumission des données soit terminée. De cette façon, même si l’utilisateur clique plusieurs fois sur le bouton, cela ne provoquera pas de problèmes de soumission répétés.

Pour résumer, la technologie PHP anti-shake est un moyen efficace d'éviter la soumission répétée de données. En enregistrant l'heure de la dernière soumission lors de la soumission des données et en définissant un intervalle de temps, les utilisateurs peuvent éviter dans une certaine mesure les clics répétés. Dans le même temps, nous pouvons également combiner la technologie frontale pour effectuer certaines interactions sur l'interface afin d'aider les utilisateurs à éviter de soumettre des données à plusieurs reprises.

J'espère que les exemples de code de cet article seront utiles aux lecteurs en cours de développement ! 🎜

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