ホームページ バックエンド開発 PHPチュートリアル 複数の PHP フォーム配信を防止する

複数の PHP フォーム配信を防止する

Jun 13, 2016 pm 01:07 PM
check cookie input quot

複数の PHP フォーム送信を防止します

HTML フォームを送信する場合、フォームが正常に送信されて応答ページが表示されるまでに数秒かかる場合があります。アイドル状態になって送信ボタンを何度もクリックしてしまうと、フォームの送信が重複してしまう可能性があります。通常は実際には問題になりませんが、場合によっては、この問題が発生するのを防ぎたい場合があります。
以下に、重複送信を防ぐための 2 つの簡単なヒントを示します。これらを使用することも、両方を組み合わせて使用​​することもできます。

?JavaScript

を使用した複数のフォーム送信を防止します。

Javascript ブロックを使用して送信を繰り返すのが、おそらく最も簡単な方法です。誰かがフォームを送信するときは、単純に送信ボタンを無効にし、その値を「送信してください。お待ちください...」など、よりわかりやすいものに変更することもあります。

たとえば、このボタンをクリックしてみてください。このページをリロードするまで無効のままになります:

最初のステップは、送信ボタンに一意の ID (例: id="myButton":

) を与えることです。
<input type="submit" value="Submit" id="myButton" />
ログイン後にコピー

2 番目 (最後の) ステップは、2 つの Javascript コマンドに

のタグを付けることです。 1 つ目は、フォームの送信後に送信ボタンを無効にするようにブラウザーに指示し、2 つ目は、何が起こっているのかユーザーにわかるようにボタンのテキストを変更します。これはフォームタグに追加するコードです:

onsubmit="document.getElementById('myButton').disabled=true;
document.getElementById('myButton').value='Submitting, please wait...';"
ログイン後にコピー

フォームのマークアップは次のようになります:

ログイン後にコピー

それでおしまい。この方法は、ほとんどのブラウザ (IE+、FireFox、Opera など) で機能します。

?複数のフォーム送信で Cookie が使用されないようにします

ブラウザー セッション全体 (またはそれ以上) で繰り返し送信されることを避けたい場合は、Cookie の使用を検討してください。たとえば、独自のフォーム処理スクリプトを編集するブラウザは、フォームの処理後、HTML またはリダイレクト プリントヘッドが処理される前に Cookie を送信します。このコードを mail() コマンドの後に置くと、ほとんどの場合機能するはずです:

setcookie('FormSubmitted', '1');
ログイン後にコピー

然后在处理之前检查cookie。如果有这个访问者已经提交了表单在活跃的浏览器会话。将下列代码添加到窗体的开始处理脚本:

if (isset($_COOKIE['FormSubmitted'])
{
    die('You may only submit this form once per session!');
}
ログイン後にコピー

就是这样!
如果修改,以阻止重复提交与cookies。注意:在上面的脚本和cookie的打印代码调用后添加一些代码的mail()函数:

<?php
<span style="color:red">/* Prevent duplicate submissions */
if (isset($_COOKIE['FormSubmitted'])
{
    show_error('You may only submit this form once per session!');
}</span>

/* Set e-mail recipient */
$myemail  = "you@domain.com";

/* Check all form inputs using check_input function */
$yourname = check_input($_POST['yourname'], "Enter your name");
$subject  = check_input($_POST['subject'], "Write a subject");
$email    = check_input($_POST['email']);
$website  = check_input($_POST['website']);
$likeit   = check_input($_POST['likeit']);
$how_find = check_input($_POST['how']);
$comments = check_input($_POST['comments'], "Write your comments");
//www.software8.co 原文
/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]&#43;\@[\w\-]&#43;\.[\w\-]&#43;)/", $email))
{
    show_error("E-mail address not valid");
}

/* If URL is not valid set $website to empty */
if (!preg_match("/^(https?:\/\/&#43;[\w\-]&#43;\.[\w\-]&#43;)/i", $website))
{
    $website = '';
}

/* Let's prepare the message for the e-mail */
$message = "Hello!

Your contact form has been submitted by:

Name: $yourname
E-mail: $email
URL: $website

Like the website? $likeit
How did he/she find it? $how_find

Comments:
$comments

End of message
";

/* Send the message using mail() function */
mail($myemail, $subject, $message);

<span style="color:red">/* Set a cookie to prevent duplicate submissions */
setcookie('FormSubmitted', '1');</span>

/* Redirect visitor to the thank you page */
header('Location: thanks.htm');
exit();

/* Functions we used */
function check_input($data, $problem='')
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    if ($problem && strlen($data) == 0)
    {
        show_error($problem);
    }
    return $data;
}

function show_error($myError)
{
?>
    <html>
    <body>

    <b>Please correct the following error:</b><br />
    <?php echo $myError; ?>

    </body>
    </html>
<?php
exit();
}
?
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

kernel_security_check_failure ブルー スクリーンを解決する 17 の方法 kernel_security_check_failure ブルー スクリーンを解決する 17 の方法 Feb 12, 2024 pm 08:51 PM

Kernelsecuritycheckfailure (カーネルチェック失敗) は比較的一般的な停止コードですが、理由が何であれ、ブルースクリーンエラーは多くのユーザーを悩ませます、当サイトでは 17 種類のエラーをユーザーに丁寧に紹介します。 kernel_security_check_failure ブルー スクリーンに対する 17 の解決策 方法 1: すべての外部デバイスを削除する 使用している外部デバイスが Windows のバージョンと互換性がない場合、Kernelsecuritycheckfailure ブルー スクリーン エラーが発生することがあります。これを行うには、コンピュータを再起動する前に、すべての外部デバイスを取り外しておく必要があります。

コンピューター上の Cookie はどこにありますか? コンピューター上の Cookie はどこにありますか? Dec 22, 2023 pm 03:46 PM

コンピュータ上の Cookie は、使用するブラウザとオペレーティング システムに応じて、ブラウザ上の特定の場所に保存されます。 1. Google Chrome、C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default \Cookies に保存されます。等

Cookie はどこに保存されますか? Cookie はどこに保存されますか? Dec 20, 2023 pm 03:07 PM

Cookie は通常、ブラウザの Cookie フォルダに保存されます。ブラウザの Cookie ファイルは通常、バイナリ形式または SQLite 形式で保存されます。Cookie ファイルを直接開くと、文字化けしたり判読できないコンテンツが表示される可能性があるため、使用することをお勧めします。 Cookie を表示および管理するためにブラウザによって提供される Cookie 管理インターフェイス。

Windows 11/10でパームチェックをオフにする方法 Windows 11/10でパームチェックをオフにする方法 Feb 19, 2024 pm 09:45 PM

この記事では、Windows 11/10 PC で PalmCheck 機能をオフにする方法を説明します。 PalmCheck は、キーボード入力時に手のひらやその他の接触が誤って入力として認識されるのを防ぐために設計された機能です。これは通常、タッチパッドの設定、特にラップトップなどのタッチ対応デバイスで見られます。キーボードとタッチパッドの両方を使用する必要がある状況で、より柔軟に入力を制御できるように、PalmCheck または同様の機能をオフにすることが必要な場合があります。この記事では、ゲームやアプリケーションの実行時のニーズにうまく対応できるように、Windows 11/10 PC で PalmCheck 機能を無効にする方法を紹介します。タッチパッドの「P」とは何ですか?

モバイル Cookie はどこにありますか? モバイル Cookie はどこにありますか? Dec 22, 2023 pm 03:40 PM

携帯電話上の Cookie は、モバイル デバイスのブラウザ アプリケーションに保存されます: 1. iOS デバイスでは、Cookie は Safari ブラウザの [設定] -> Safari -> [詳細] -> [Web サイト データ] に保存されます; 2. Android デバイスでは、Cookie は保存されますChromeブラウザの設定→サイト設定→Cookieなど

Cookie 漏洩の危険性は何ですか? Cookie 漏洩の危険性は何ですか? Sep 20, 2023 pm 05:53 PM

Cookie 漏洩の危険には、個人識別情報の盗難、個人のオンライン行動の追跡、アカウントの盗難などが含まれます。詳細な導入: 1. 名前、電子メール アドレス、電話番号などの個人識別情報が盗まれます。この情報は、犯罪者によって個人情報の盗難、詐欺、その他の違法行為を実行するために使用される可能性があります。2. 個人のオンライン行動が追跡され、 Cookie を介して分析される アカウント内のデータを使用して、犯罪者はユーザーの閲覧履歴、ショッピングの好み、趣味などを知ることができます; 3. ログイン認証をバイパスし、ユーザーのアカウントに直接アクセスするなどして、アカウントが盗まれます。

ブラウザの Cookie が保存される場所の詳細な説明 ブラウザの Cookie が保存される場所の詳細な説明 Jan 19, 2024 am 09:15 AM

インターネットの普及により、ブラウザを使用してインターネットを閲覧することが生活様式になりました。ブラウザを日常的に使用する中で、オンラインショッピング、ソーシャルネットワーキング、電子メールなど、アカウントのパスワードを入力する必要がある場面に遭遇することがよくあります。この情報は、次回アクセスするときに再度入力する必要がないようにブラウザによって記録される必要がありますが、このような場合に Cookie が役に立ちます。クッキーとは何ですか? Cookie とは、サーバーからユーザーのブラウザに送信され、ローカルに保存される小さなデータ ファイルを指し、一部の Web サイトでのユーザーの行動が含まれています。

クッキーの仕組み クッキーの仕組み Sep 20, 2023 pm 05:57 PM

Cookie の動作原理には、サーバーが Cookie を送信し、ブラウザが Cookie を保存し、ブラウザが Cookie を処理して保存することが含まれます。詳細な紹介: 1. サーバーは Cookie を送信し、サーバーは Cookie を含む HTTP 応答ヘッダーをブラウザーに送信します。この Cookie には、ユーザーの本人認証、設定、ショッピング カートの内容などの情報が含まれており、ブラウザがこの Cookie を受信すると、ユーザーのコンピュータに保存されます。2. ブラウザは Cookie などを保存します。

See all articles