ホームページ >バックエンド開発 >PHPチュートリアル >PHP でフォームの繰り返し送信を防ぐ方法の紹介 (コード例)
この記事は、PHP でのフォームの重複送信を防止する方法 (コード例) の紹介です。一定の参考価値があります。困っている友人は参考にしてください。お役に立てれば幸いです。 。
恥ずかしながら、数日前にプロジェクトに取り組んでいたときに、レベルの低い間違いを犯してしまいました。会社のバックエンドでフォームを送信する際、1つは従業員が使用し、もう1つは私がhtmlで作成したフォームを検証せずに何度も送信し、結果はエラーになってしまいました。それを書き留めて記録して自分に思い出させ、決して無視しないでください。
解決策
実際にはたくさんの方法がありますが、ここでは簡単な例をいくつか紹介します。
フレームワーク
多くのフレームワークには重複送信を防止する機能が備わっていますが、これについては誰もが知っているはずなので、ここでは詳しく説明しません。
フロントエンド
原理は非常にシンプルで、ユーザーが送信をクリックした後、JS を使用して送信ボタンをグレー表示にするだけです。
バックエンド
つまり、検証にはPHPが使用されますが、もちろん以下の種類に限定されるわけではありません
Cookie
ユーザーが送信するフォームをバックエンドに送信し、Cookie にマークを付け、指定された時間内に繰り返し送信した場合は無効になります。ただし、ユーザーが Cookie を無効にすると、このメソッドは失敗します。
<?php if (isset($_COOKIE['formFlag'])) { exit('error'); } // 处理数据 // 30秒内重复提交无效 setcookie('formFlag', time(), time() + 30);
フォーム ページを表示すると、乱数が生成され、セッションとフォームの非表示フィールドに保存されます。初めて送信するときは、セッション内の値を比較し、正常に削除します。
rreeee以上がPHP でフォームの繰り返し送信を防ぐ方法の紹介 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。