0

受信したメールを時々複製するPHPフォームがあります。私はコードをトリプルチェックしましたが、ループを作る可能性のあるものは何もありません. また、同じ情報が送信されてデータベースに挿入されるのを防ぐセッションを作成しました..それでも、特定の電子メールを数回受信しています..

ユーザーがこれらのメールを送信した方法とその原因を再現しようとしました。この重複の原因は、送信ボタンを数回クリックすることであることがわかりました。送信ボタンをクリックする回数が、受信する重複メールの量です。

なぜこれが起こるのか誰にも分かりますか?そして、どうすれば防ぐことができますか?

4

2 に答える 2

1

送信ボタンを複数回クリックすると、サーバーに x リクエストが行われ、x メールが届きます。これを回避するには、次の方法を使用できます。

  • フォーム トークンを使用して、1 つのフォームが 1 回だけ有効になるようにします。
  • 複数の送信を避けるために、最初のクリック後に JavaScript を使用して送信ボタンを無効にします。
于 2013-04-14T06:16:18.517 に答える