PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPでフォームを送信するときに複数の挿入を防ぐにはどうすればよいですか?


PHPセッションを使用すると、フォームを送信するときに複数の挿入を防ぐことができます。 PHPセッションは、POSTの現在のタイムスタンプを設定するセッション変数(たとえば、$ _ SESSION ['posttimer'])を設定します。 PHPでフォームを処理する前に、$ _ SESSION ['posttimer']変数が存在するかどうかがチェックされ、特定のタイムスタンプの違い(たとえば、2秒または3秒)がチェックされます。このようにして、実際に重複している挿入を識別して削除できます。

シンプルな形-

// form.html
<form action="my_session_file.php" method="post">
   <input type="text" name="bar" />
   <input type="submit" value="Save">
</form>

上記の「my_session_file.php」への参照には、以下のコード行が含まれます-

if (isset($_POST) && !empty($_POST)) {
   if (isset($_SESSION['posttimer'])) {
      if ( (time() - $_SESSION['posttimer']) <= 2) {
         // less then 2 seconds since last post
      } else {
         // more than 2 seconds since last post
      }
   }
   $_SESSION['posttimer'] = time();
}

出力

これにより、次の出力が生成されます-

The unique form submitted data.

posttimerセッション変数が設定され、最後のPOST操作の前に2秒以下の時間差がある場合、それを削除できます。それ以外の場合は保存されます。時間関数が呼び出され、値がポストタイマーセッション変数に割り当てられます。


  1. Windows10で入力するときにタッチパッドのクリックを防ぐ方法

    私の仕事、勉強、余暇のすべてがラップトップで行われた時期がありました。そのバラ色の時代の携帯性と便利さを見逃していても、見逃してはならないことの1つは、ラップトップのキーボードで入力することです。 ラップトップのキーボード自体に問題があるわけではありませんが、タッチパッドの干渉以上に私を苛立たせるものはありません。入力している1分後、カーソルがランダムな場所にジャンプし、流れが途切れます。 Windowsでは、入力時にタッチパッドアクティビティを無効にする機能を有効にすることで、この煩わしさを完全に終わらせることができます。 Windows10でオンにする方法は次のとおりです。 マウス

  2. 複数のファイルを削除するときにOneDrive通知を表示する方法

    OneDrive から5つ、10つ、または任意の数のファイルを削除するときに通知を表示する場合 ローカルコンピュータで、これを行う方法は次のとおりです。 ローカルグループポリシーエディターを使用して、この設定を有効にすることができます。 およびレジストリエディタ 。 一度に10個または15個のファイルを削除したときに通知を促したいとします。 OneDriveの[設定]パネルには組み込みの設定がないため、REGEDITまたはGPEDITのいずれかを使用する必要があります。ただし、GPEDITメソッドを使用するには、ローカルグループポリシーエディターでOneDrive同期設定を追加する必要があり