改行が早すぎるため、繰り返し送信されます
この問題の解決方法を教えてください。
1. 送信が完了した後、ブロックされ、SUBMIT が灰色になりますが、Enter キーを押しても送信されます
------解決策------ -php は繰り返し送信を防止します フォーム
解決策 1: Cookie メカニズムを導入して
を解決します 送信ページのコードは次のとおりです a.php コードは次のとおりです:
< ;form id="form1" name="form1" method= "post" action="t2.php">
説明
php
Setcookie("onlypost", 't'); // Cookie を設定します。時間値を取得できます。たとえば、一部のフォーラムでは、基本情報の一部を保存することでスパムを防止できます。
?> ページ b.php を処理するコードは次のとおりです。
if($_COOKIE['onlypost'] == 't'){
print_r($ _COOKIE);
// 検証が成功した場合、送信されたコンテンツを処理します
print "ok";
setcookie("onlypost", 'f') // Cookie の値を変更して削除することもできますit
} ?> ;
body
上記の処理の欠点: クライアントが Cookie を無効にしている場合、このメソッドは効果がありません。
解決策 2: セッションを使用する (JSP の処理方法と同じです)
PHP の Session 関数を使用すると、フォームの繰り返し送信を回避することもできます。セッションはサーバー側に保存され、次回この変数にアクセスすると、セッション変数を使用して送信された値を記録できます。フォームが一致しない場合は、繰り返し送信しているユーザーとみなされます。
ページ A のコード:
Session_start(); //現在の SESSION に基づいて乱数を生成します
$code = mt_rand(0,1000000);
$_SESSION [' code'] = $code; //この乱数をセッションに一時的に保存します
?>
B ページ:
session_start()
if(isset($_POST['originator'] )) {
if($_POST['originator'] == $_SESSION['code']){
echo "ok";
unset($_SESSION["code"]); //この時点でそれをクリアし、もう一度 F5 キーを押すと無効になります
}else{
echo "このページを更新したり、フォームを繰り返し送信しないでください";
} }?> 3: サーバー上で最後にリダイレクト処理を行います
if (isset($_POST['action']) && $_POST['action'] == 'submitted') {
// データなどを処理しますデータを挿入すると、すぐに他のページにリダイレクトされます。
header('location:submits_success.php') //効果は JSP の sendRedirect と同様です
}
------解決策---------
誰かが前に質問しましたが、極端な場合です。 例えば投稿の間隔が狭い!そして量が多い。 どうやって対処すればいいでしょうか?
------解決策---------
お客様に異議がない場合は、以下の入場を禁止します。 onsubmit= "false を返す;"
------解決策---------
それほど複雑ではなく、JS を使用すると非常に簡単ですとても簡単です。
------解決策------------------
ボタンを無効にし、Enter キーを押してこのボタンをトリガーします, まだ提出できないと思います。 もう 1 つのメソッドは $("#ok:not(.btn-disable)").live("click",function()
{
$(this).addClass("btn-disable" );
}
------解決策---------
「重複送信」をテストできないのはなぜですか?毛織物?
------解決策------------------
------解決策----------------------