ホームページ  >  記事  >  バックエンド開発  >  PHP 手ぶれ補正テクノロジー: フォーム送信の正確性と有効性を確保

PHP 手ぶれ補正テクノロジー: フォーム送信の正確性と有効性を確保

WBOY
WBOYオリジナル
2023-10-12 08:27:20682ブラウズ

PHP 防抖技术:确保表单提交的准确性和有效性

PHP アンチシェイク テクノロジ: フォーム送信の精度と有効性を確保

インターネットの発展に伴い、フォーム送信は Web アプリケーションの特性において重要な役割を果たしています。 。ただし、ネットワークの遅延やユーザーの誤操作により、フォームデータが繰り返し送信され、データが不正確になったり、プログラムが異常に実行されたりする可能性があります。この問題を解決するには、PHP の手ぶれ補正テクノロジーを使用して、フォーム送信の正確さと有効性を確保します。

手ぶれ補正技術とは何ですか?

アンチシェイク テクノロジは、特定の時間間隔内でコードを 1 回だけ実行する戦略です。フォーム送信アクションが発生すると、手ぶれ防止タイマーを設定できます。送信コードはタイマー時間が経過した後にのみ実行されます。タイマーが期限切れになる前に送信アクションが再度トリガーされると、タイマーはリセットされ、繰り返し送信されるコードは実行されません。

PHP を使用して手ぶれ補正テクノロジを実装するにはどうすればよいですか?

以下では、具体的な例を使用して、PHP を使用して手ぶれ補正テクノロジを実装する方法を説明します。ユーザーが自分の名前と電子メール アドレスを入力し、送信ボタンをクリックして情報を保存する必要があるフォームがあるとします。ユーザーがボタンをクリックした後、一定期間再度クリックしなかった場合にのみデータがデータベースに保存されることを確認する必要があります。

まず、form_submit.php という名前の新しい PHP ファイルを定義し、そのファイルに次のコードを記述する必要があります。

<?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();
?>

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); // 设置延迟时间,单位为毫秒
    });
</script>

上記のコードでは、送信イベント リスナーをフォームに追加することで送信アクションをキャプチャします。ユーザーが送信ボタンをクリックすると、setTimeout 関数を通じて遅延時間が設定されます。ここでは 1 秒に設定されています。ユーザーが 1 秒以内にもう一度送信ボタンをクリックすると、以前に設定したタイマーがクリアされ、手ぶれ補正効果が得られるようにリセットされます。 1 秒以内に再度クリックがなかった場合にのみ、フォーム データが実際に form_submit.php ファイルに送信されます。

このようにして、フォーム送信の正確さと有効性を確保するために手ぶれ補正テクノロジーを実装することに成功しました。 PHP と JavaScript を組み合わせて使用​​すると、フォーム データの繰り返しの送信を回避し、データの正確性を確保し、より良いユーザー エクスペリエンスを提供できます。

以上がPHP 手ぶれ補正テクノロジー: フォーム送信の正確性と有効性を確保の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。