実用的な PHP 手ぶれ補正テクノロジ: データの繰り返し送信を回避します
Web 開発では、ユーザーにデータの送信を要求するシナリオによく遭遇します。ユーザーが短時間に何度も送信ボタンをクリックすると、データが繰り返し送信され、システムやユーザーに無用な迷惑がかかる可能性があります。この問題を解決するには、PHP 手ぶれ補正テクノロジを使用して、データが繰り返し送信されるのを避けることができます。この記事では、読者が PHP 手ぶれ補正テクノロジを実装するのに役立つ具体的なコード例を示します。
PHP 手ぶれ補正技術の原理は、送信ボタンをクリックすると送信されたデータを保存し、一定時間以内にユーザーが再度ボタンをクリックすると再送信と判断します。 。以下は具体的なコード例です:
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 '数据提交成功!'; }
上記のコードでは、$_SESSION
を使用して最後の送信の時間を節約します。 debounce
この関数は 2 つのパラメータを受け入れます。$key
はさまざまな送信アクションを識別するために使用され、$time
は時間間隔を指定します。最後に送信してからの時間が指定した時間間隔未満の場合は再送信と判断し、それ以外の場合は前回の送信時刻が更新されます。
実際のアプリケーションでは、必要に応じてフォームが送信されるページで debounce
関数を呼び出し、別の $key
と $time# を渡すことができます。 # #手ぶれ補正の設定を行います。
以上が実用的な PHP 手ぶれ補正テクノロジー: データの繰り返し送信を回避の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。