ホームページ > バックエンド開発 > PHPチュートリアル > 実用的な PHP 手ぶれ補正テクノロジー: データの繰り返し送信を回避

実用的な PHP 手ぶれ補正テクノロジー: データの繰り返し送信を回避

PHPz
リリース: 2023-10-12 12:40:02
オリジナル
1195 人が閲覧しました

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

実用的な 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 手ぶれ補正テクノロジは、データの繰り返しの送信を回避する効果的な方法です。データ送信時に最終送信時刻を記録し、時間間隔を設定することで、ユーザーはある程度の繰り返しクリックを回避できます。同時に、フロントエンドテクノロジーを組み合わせてインターフェイス上で何らかの操作を実行し、ユーザーがデータを繰り返し送信することを避けることもできます。

この記事のコード例が読者の実際の開発に役立つことを願っています。

以上が実用的な PHP 手ぶれ補正テクノロジー: データの繰り返し送信を回避の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート