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

php中文网
发布: 2016-06-13 13:29:36
原创
1021人浏览过

关于用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>
登录后复制
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号