Web 開発では、ユーザーがデータを送信するシナリオによく遭遇します。ユーザーが短時間に何度も送信ボタンをクリックすると、データが繰り返し送信され、システムやユーザーに無用な迷惑がかかる可能性があります。 PHP 手ぶれ補正テクノロジーはこの問題を効果的に解決し、データの繰り返しの送信を回避できます。
PHP アンチシェイクの中心的な考え方は、ユーザーがデータを送信するときに送信時間を記録し、指定された時間間隔内に再送信するかどうかを決定することです。間隔内に再度送信された場合は、繰り返し送信されたとみなされます。それ以外の場合、データは通常どおり処理されます。
セッション始める();
関数 debounce($key, $time) {
// やっとの送信時刻を得る $lastSubmit = isset($_SESSION[$key]) ? $_SESSION[$key] : 0;
// やっとの送信からの時間が指定された時間間隔より大きいきいかどうかを判断します if (time() - $lastSubmit < $time) {
true を戻るします。 // 送信を繰り戻るします} else {
$_SESSION[$key] = 時間(); // 前回の送信時刻を更新するします return false; // 繰り返すしない送信}
}
// 送信されたデータを得る $data = $_POST['data'];
// 繰り戻るし送信であるかどうかを判断します if (debounce('submit_key', 3)) {
echo 'データを繰り戻るし送信しないでください。 ';
} それ以外 {
// 送信されたデータを処理します // ...
echo 'データは普通に送信されました! ';
}上の例では、 $_SESSION を使用して最後のコミット時間を保存します。デバウンス関数は 2 つのパラメータを受け入れます。 $key はさまざまな送信アクションを識別するために使用され、 $time は時間間隔を指定します。前回の送信からの時間が指定した時間間隔未満の場合は再送信とみなされ、それ以外の場合は送信時間が更新されます。
実際の開発では、フォーム送信ページでデバウンス関数を呼び出し、手ぶれ補正設定のために別の$keyと$timeを渡すことができます。さらに、ボタンをクリック後は無効にし、送信完了後にボタンを有効にするなどのフロントエンド技術を組み合わせることで、重複送信をさらに回避できます。
PHP 手ぶれ補正テクノロジーは、データの繰り返しの送信を回避する効果的な手段です。送信時間を記録し、時間間隔を設定することで、ユーザーが頻繁にクリックして送信を繰り返すことを防ぎ、同時にフロントエンド インタラクションと合わせてユーザー エクスペリエンスを最適化できます。 PHP 手ぶれ補正テクノロジーを実際のプロジェクトに柔軟に適用すると、システムの安定性とユーザー エクスペリエンスが大幅に向上します。