現在の位置: ホーム> 最新記事一覧> PHPアンチシェイクテクノロジーの適用:フォームの繰り返しの提出を防ぎ、ユーザーエクスペリエンスの改善

PHPアンチシェイクテクノロジーの適用:フォームの繰り返しの提出を防ぎ、ユーザーエクスペリエンスの改善

M66 2025-07-01

PHPアンチシェイクテクノロジーの適用:フォームの繰り返しの提出を防ぎ、ユーザーエクスペリエンスの改善

インターネットの開発により、Form SubmissionはWebアプリケーションで不可欠な機能になりました。ただし、フォームの提出を繰り返すと、ネットワークの遅延やユーザーの誤術により、データエラーまたはプログラムの例外が発生する可能性があります。この問題を解決するために、PHPアンチシェイクテクノロジーは、フォームの提出の正確性を確保し、繰り返しの提出を避けることができます。

アンチシェイクテクノロジーとは何ですか?

アンチシェイクテクノロジーは、操作の頻度を制御するテクノロジーであり、指定された時間間隔内で操作が1回のみ実行されるようにします。フォーム送信アクションがトリガーされると、アンチシェイクテクノロジーはタイマーを設定して、指定された時間内に新しい提出トリガーがない場合にのみ提出操作が実行されるようにします。タイマー期間中に[送信]ボタンが再度クリックされた場合、タイマーはリセットされ、繰り返しの提出物が回避されます。

PHPでアンチシェイクテクノロジーを実装する方法は?

次に、具体的な例を使用して、PHPでアンチシェイクテクノロジーを実装する方法を示します。名前とメールボックスフィールドを含むユーザー登録フォームがあるとします。ユーザーがフォームを送信すると、データをデータベースに保存する必要があります。フォームを送信するときに頻繁にボタンをクリックするためにユーザーが繰り返し送信しないようにするために、フォームを送信するときにアンチシェイクテクノロジーを使用できます。

PHPバックエンドコードの例:

<?php
// データベースに接続します
$mysqli = new mysqli("localhost", "username", "password", "database");

// 接続が成功しているかどうかを確認してください
if ($mysqli-> connect_error){
    die( "接続失敗:"。$ mysqli-> connect_error);
}

// post data $ name = $ _post [&#39;name&#39;];
$ email = $ _post [&#39;email&#39;];

//レコードが今それに存在するするかどうかを確認します$ query = "select * fromユーザー= &#39;$ name&#39;およびemail = &#39;$ email&#39;";
$ result = $ mysqli-> query($ query);

if($ result-> num_rows> 0){
    エコー「レコードはすでに存在するします」;
} それ以外 {
    //新しいしいレコードを挿入$挿入= "ユーザー(名前、電子メール)値( &#39;$ name&#39;、 &#39;$ email&#39;)";
    $ mysqli-> query($ insert);
    エコー「レコードは普通に保存されます」;
}

//データベース接続を近いじる$ mysqli-> close();
?>

フロントエンドHTMLおよびJavaScriptコードの例:

<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); // 遅延時間はに設定されています12番
});
</script>

要約します

PHPとJavaScriptの組み合わせにより、フォームの繰り返しの提出を効果的に回避し、データの正確性とプログラムの通常の操作を確保できます。このアンチシェイクテクノロジーは、ユーザーエクスペリエンスを改善するだけでなく、誤動作によって引き起こされるエラーを減らします。