PHP でのフォーム送信時の複数の挿入の防止
ユーザーが送信ボタンを複数回押すと、フォーム送信時に複数の挿入が発生することがあります。これにより、意図しないデータの重複が発生する可能性があります。この問題に対処するには、いくつかのアプローチがあります:
JavaScript 送信ボタンの無効化:
このメソッドは、JavaScript を使用して、送信ボタンが無効になった後に送信ボタンを無効にします。クリックしました。ただし、ボタンを使用せずに、または JavaScript を無効にしてフォームを送信できるため、信頼性は高くありません。
PHP セッション タイムスタンプ:
このアプローチフォーム送信時にセッション変数 ($_SESSION['posttimer']) を現在のタイムスタンプに設定します。フォームの処理中に、変数が存在するかどうかを確認し、現在のタイムスタンプと比較します。時間差が事前定義されたしきい値 (例: 2 秒) 未満の場合、二重送信が検出されます。
Unique Token Inclusion:
この方法では、各フォームに一意のトークンを含めます。セッション変数は、フォームで使用されるトークンを保持します。フォームを送信すると、新しいトークンが生成されます。送信されたトークンがセッション トークンと一致しない場合、二重送信とみなされます。例:
// form.php
$_SESSION['token'] = md5(session_id() . time());
echo '';
// foo.php
if (isset($_SESSION['token'])) {
if (isset($_POST['token']) && $_POST['token'] != $_SESSION['token']) {
// Double submit detected
}
}
これらのメソッドのいずれかを実装すると、PHP でフォームを送信するときに複数の挿入を効果的に防止し、データの整合性を確保し、意図しない重複を回避できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3