window.locat"/> window.locat">

ホームページ >バックエンド開発 >PHPチュートリアル >POSTメソッドによる送信について、リフレッシュ中にデータの重複送信を防止する方法

POSTメソッドによる送信について、リフレッシュ中にデータの重複送信を防止する方法

WBOY
WBOYオリジナル
2016-06-13 13:29:36944ブラウズ

POSTメソッドを使用した送信について、リフレッシュ中にデータの繰り返し送信を防ぐ方法
if(isset($_POST["sel"]){
$a=$_POST["sel"];
unset ( $_POST["sel"];
echo "";
}

......






これは表示されたコードのシーケンス構造です

送信後、このデータを受信するとOKになります。その後、$_POST[" selをログアウトします。 "]。同時に、JavaScript を使用してこのページに再度ジャンプします (この方法では、データ $_POST["sel"] は存在しないと思います)。ただし、すべての実行が完了した後、更新します。まだ「入力した情報を使用する必要があります。このページに戻ると、実行したすべての操作を繰り返す必要がある場合があります。続行しますか?」

このプロンプトは表示されないようにしたいです。更新すると表示されます。つまり、POST データが完全にログアウトされます。どうすればよいですか?

Baidu でいくつかの方法を見つけました。そのうちの 1 つは、 にキャッシュを設定することです。 「キャッシュなし」のようですが、機能しません。
もう 1 つは、Post Redirect Get (PRG) を使用することです。原理は読みましたが、使い方がわかりません。何らかのHTTP 303ジャンプを使用しているようですが、理解できません。専門家のアドバイスをお願いします~

-----解決策------ -------------
「A Bite of China」を見ています...わかりました、ちょっとお待ちください

PHP コード

<?php
if(!empty($_POST['name'])){
    //POSTデータを処理する
    エコー「ああああ」;
    出口;
}
?>
<html>

    <!--jquery ライブラリをロードします-->
    <script type="text/javascript" src="Js/jquery-1.7.2.min.js"></script>
</head>

<input id="yes" type="submit" name="sel1" value="aaa"></li>
<input id="no" type="submit" name="sel2" value="bbb"></li>
<input type="button" name="b_submit" id="b_submit" onclick="j_post();">

<スクリプトタイプ="text/javascript">
    関数 j_post(){
        var txt=$("#yes").val();
        var txt2=$("#no").val();
        $.post("b.php", { 名前:txt, 時刻:txt2},
            関数(データ){
                alert("データが読み込まれました: " + データ);
            });
    }
</スクリプト>

</ボディ>
</html>
<br><font color="#e78608">------解決策---------</font><br> 1 フォーム送信後、別のページにジャンプします<br> 2 @PhpNewnew さんがおっしゃっているように、AJAX を使って送信してください <br> AJAX POST を使用する場合は、送信ボタンの「ロック」に注意してください。 <br><br> 3 フォームに一意の uniqid を割り当て、フォームを送信するときにこの値を確認します。 <br><br> 4 または確認コードを使用します (実際には方法 3 と同じ原理) <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。