Heim  >  Artikel  >  Backend-Entwicklung  >  关于用POST方法提交,怎么防止刷新时重复提交数据的有关问题

关于用POST方法提交,怎么防止刷新时重复提交数据的有关问题

WBOY
WBOYOriginal
2016-06-13 13:29:36908Durchsuche

关于用POST方法提交,如何防止刷新时重复提交数据的问题
if(isset($_POST["sel"]){
$a=$_POST["sel"];
unset($_POST["sel"];
echo "";
}

......






这是显示的代码的顺序结构

我在提交后.当接收到这个数据了之后就算是ok了.然后注销掉$_POST["sel"]这个量.同时用javascript再次跳转到本页面来(我想这样就不会存在$_POST["sel"]这个数据了)..但是当所有执行完了之后我再刷新..它还是提示我"需要使用已输入的信息,返回此页可能需要重复已进行的所有操作.是否要继续操作?"

我想在刷新的时候不要出现这个提示..也就是彻底把POST数据注销掉..请问怎么做?

我在百度的时候查到这么几个方法..一个说是中设置不保留缓存.好像是什么"no-cache"..但是没有用..
再一个是说用到Post Redirect Get(PRG)..看了原理但是不知道怎么用..好像是用到什么HTTP 303跳转..但不懂..还请高手指教~

------解决方案--------------------
在看 舌尖上的中国...好吧,稍等一下

PHP code

<?php if(!empty($_POST['name'])){
    //处理POST数据
    echo 'aaaaa';
    exit;
}
?>


    <!--载入jquery库-->
    <script type="text/javascript" src="Js/jquery-1.7.2.min.js"></script>


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

<script type="text/javascript">
    function j_post(){
        var txt=$("#yes").val();
        var txt2=$("#no").val();
        $.post("b.php", { name:txt, time:txt2},
            function(data){
                alert("Data Loaded: " + data);
            });
    }
</script>



<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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn