php メソッドでフォームの繰り返し送信を禁止します。まずフォームに入力非表示フィールドを追加します。次に、その値を使用してトークン値を保存します。その後、ページが更新されるとトークン値が変更され、トークンの値は送信後に決定されます 正しいですか? 最後に、フォアグラウンドで送信されたトークンがバックグラウンドと一致しない場合、それは重複送信とみなされます。
#php でフォームの繰り返し送信を禁止するメソッド:
まずフロントエンドから制限を加えます。ボタンが 1 回クリックされるとフロントエンド JavaScript が無効になります。この方法は送信ボタンの複数回のクリックを防止するだけですが、ユーザーが JavaScript スクリプトを無効にすると機能しなくなるという欠点があります。関連する学習の推奨事項:2 番目に、送信後にページをリダイレクトできます。つまり、ジャンプします。送信後に新しいページに移動するのは、主に F5 キーによる繰り返しの送信を避けるためですが、欠点もあります。 3 番目に、データベースは一意のインデックス制約を作成します。 4 番目は、セッション トークンの検証を行うことです。 次に、セッション トークンを使用してフォームの繰り返しの送信を防ぐ簡単な方法を見てみましょう。 フォームに入力非表示フィールド、つまり type="hidden" を追加します。その値はトークン値の保存に使用されます。ページが更新されると、トークン値が変更されます。送信後、トークンの値が正しいかどうかを判断し、フロントエンドで送信されたトークンがバックエンドで送信されたトークンと一致しない場合は、重複送信とみなされます。php プログラミング (ビデオ)
<?php /* * PHP简单利用token防止表单重复提交 */ session_start(); header("Content-Type: text/html;charset=utf-8"); function set_token() { $_SESSION['token'] = md5(microtime(true)); } function valid_token() { $return = $_REQUEST['token'] === $_SESSION['token'] ? true : false; set_token(); return $return; } //如果token为空则生成一个token if(!isset($_SESSION['token']) || $_SESSION['token']=='') { set_token(); } if(isset($_POST['web'])){ if(!valid_token()){ echo "token error,请不要重复提交!"; }else{ echo '成功提交,Value:'.$_POST['web']; } }else{ ?> <form method="post" action=""> <input type="hidden" name="token" value="<?php echo $_SESSION['token']?>"> <input type="text" class="input" name="web" value="www.jb51.net"> <input type="submit" class="btn" value="提交" /> </form> <?php } ?>
関連する学習に関する推奨事項:
以上がPHPでフォームの繰り返し送信を禁止する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。