Maison >développement back-end >tutoriel php >Technologie PHP anti-shake : garantir l'exactitude et l'efficacité des soumissions de formulaires
Technologie PHP Anti-Shake : garantissez l'exactitude et l'efficacité de la soumission de formulaires
Avec le développement d'Internet, la soumission de formulaires joue un rôle essentiel dans les applications Web. Cependant, en raison de retards du réseau ou de mauvaises opérations de l'utilisateur, les données du formulaire peuvent être soumises à plusieurs reprises, ce qui entraîne des données inexactes ou une exécution anormale du programme. Afin de résoudre ce problème, nous pouvons utiliser la technologie anti-shake de PHP pour garantir l'exactitude et l'efficacité de la soumission du formulaire.
Qu'est-ce que la technologie anti-tremblement ?
La technologie anti-shake est une stratégie qui n'exécute le code qu'une seule fois dans un intervalle de temps spécifique. Lorsque l'action de soumission du formulaire se produit, nous pouvons définir une minuterie anti-tremblement et le code de soumission ne sera exécuté qu'après l'expiration du délai. Si l'action de soumission est à nouveau déclenchée avant l'expiration du délai, le délai sera réinitialisé et le code de la soumission répétée ne sera pas exécuté.
Comment utiliser PHP pour implémenter la technologie anti-shake ?
Ci-dessous, nous utiliserons un exemple spécifique pour illustrer comment utiliser PHP pour implémenter la technologie anti-shake. Supposons que nous ayons un formulaire dans lequel l'utilisateur doit remplir son nom et son adresse e-mail et cliquer sur le bouton Soumettre pour enregistrer les informations. Nous devons nous assurer qu'une fois que l'utilisateur a cliqué sur le bouton, les données ne seront enregistrées dans la base de données que s'il ne clique plus dessus pendant un certain temps.
Tout d'abord, nous devons définir un nouveau fichier PHP, nommé form_submit.php, et écrire le code suivant dans le fichier :
<?php // 连接数据库 $mysqli = new mysqli("localhost", "username", "password", "database"); // 检测连接是否成功 if ($mysqli->connect_error) { die("连接失败: " . $mysqli->connect_error); } // 获取POST数据 $name = $_POST['name']; $email = $_POST['email']; // 查询是否有相同的记录 $query = "SELECT * FROM users WHERE name = '$name' AND email = '$email'"; $result = $mysqli->query($query); if ($result->num_rows > 0) { // 记录已存在,返回错误信息 echo "记录已存在"; } else { // 插入新记录 $insert = "INSERT INTO users (name, email) VALUES ('$name', '$email')"; $mysqli->query($insert); echo "记录保存成功"; } // 关闭数据库连接 $mysqli->close(); ?>
Dans le fichier HTML, nous devons ajouter un formulaire et le code JavaScript correspondant pour obtenir un anti- Fonction secouer. Par exemple :
<form id="myForm" action="form_submit.php" method="POST"> <input type="text" name="name" required> <input type="email" name="email" required> <button type="submit" id="submitButton">提交</button> </form> <script> var form = document.getElementById("myForm"); var submitButton = document.getElementById("submitButton"); var debounceTimer = null; form.addEventListener("submit", function(e) { e.preventDefault(); // 取消默认的表单提交行为 if (debounceTimer) { clearTimeout(debounceTimer); } debounceTimer = setTimeout(function() { form.submit(); // 延迟提交表单 }, 1000); // 设置延迟时间,单位为毫秒 }); </script>
Dans le code ci-dessus, nous capturons l'action de soumission en ajoutant un écouteur d'événement de soumission au formulaire. Lorsque l'utilisateur clique sur le bouton de soumission, un délai est défini via la fonction setTimeout, ici il est défini sur 1 seconde. Si l'utilisateur clique à nouveau sur le bouton de soumission dans un délai d'une seconde, la minuterie précédemment réglée sera effacée et réinitialisée pour obtenir un effet anti-tremblement. Ce n'est que s'il n'y a pas de nouveau clic dans la seconde que les données du formulaire seront réellement soumises au fichier form_submit.php.
De cette façon, nous avons mis en œuvre avec succès une technologie anti-tremblement pour garantir l'exactitude et l'efficacité de la soumission du formulaire. En utilisant une combinaison de PHP et JavaScript, vous pouvez éviter la soumission répétée de données de formulaire, garantir l'exactitude des données et offrir une meilleure 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!