ホームページ >バックエンド開発 >PHPの問題 >PHPでフォームが繰り返し送信されないようにする方法

PHPでフォームが繰り返し送信されないようにする方法

(*-*)浩
(*-*)浩オリジナル
2019-09-27 14:48:313044ブラウズ

フォームが繰り返し送信されるのを防ぐ方法

PHPでフォームが繰り返し送信されないようにする方法

問題を解決するための Cookie メカニズムの導入(推奨学習: PHP プログラミング入門から習熟まで)

ユーザーはフォームをバックエンドに送信し、Cookie にマークを付けます。指定された時間内に繰り返し送信した場合は無効になります。ただし、ユーザーが Cookie を無効にすると、このメソッドは失敗します。

<?php
  
if (isset($_COOKIE[&#39;formFlag&#39;])) {
  exit(&#39;error&#39;);
}
  
// 处理数据
  
// 30秒内重复提交无效
setcookie(&#39;formFlag&#39;, time(), time() + 30);

セッション

フォーム ページを表示すると、乱数が生成され、セッションとフォームの非表示フィールドに保存されます。初めて送信するときは、セッション内の値を比較し、正常に削除します。

PHP のセッション関数を使用すると、フォームの繰り返しの送信を回避することもできます。セッションはサーバー側に保存されます。セッション変数は、PHP の実行中に変更できます。次回この変数にアクセスすると、新しく割り当てられた値が取得されます。したがって、セッション変数を使用して、PHP によって送信された値を記録できます。フォームに一致しない場合は、繰り返し送信しているユーザーとみなされます。

rree

以上がPHPでフォームが繰り返し送信されないようにする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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