チャレンジ:
場合によっては、ユーザーが意図せずに「 Enter" キーを複数回入力すると、重複した投稿や挿入が発生します。
代替解決策:
タイトルとコンテンツに基づいて重複投稿をチェックする以外に、いくつかの追加のアプローチを使用できます。この問題を効果的に回避するには:
JavaScript 経由で送信ボタンを無効にする:
この方法には、フォームの送信ボタンがクリックされた後に無効にすることが含まれます。ただし、ユーザーは他の方法でフォームを送信する可能性があり、JavaScript が無効になっているユーザーも影響を受けるため、確実ではありません。
セッションベースのタイムスタンプ:
PHP セッションを利用して、投稿を受信したときにタイムスタンプを設定できます。後続の送信時に、現在のタイムスタンプと保存されているタイムスタンプの時間差を確認できます。差が事前定義された制限内 (例: 2 秒) の場合、送信には重複としてフラグを立てることができます。
固有トークン:
POST リクエストごとに一意のトークンを生成することで、送信されたフォームが以前に送信されていないことが保証されます。トークン値はセッションに保存され、フォームの送信に含まれます。送信されたトークンとセッション トークンの間に不一致がある場合は、二重送信の試みを示しており、それに応じて拒否できます。
これらの代替案は、フォーム送信での複数の挿入を防止し、データの整合性を確保する堅牢なソリューションを提供します。重複レコードの可能性を減らします。
以上がPHP でのフォーム送信時に複数の挿入を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。