首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

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

2012-05-31 
关于用POST方法提交,如何防止刷新时重复提交数据的问题if(isset($_POST[sel]){$a$_POST[sel]unset($

关于用POST方法提交,如何防止刷新时重复提交数据的问题
if(isset($_POST["sel"]){
$a=$_POST["sel"];
unset($_POST["sel"];
echo "<script language='javascript'>window.location.href(?ok=ok)</script>";
}

......

<form name="test" method="POST" action="">
<input id="yes" type="submit" name="sel" value="aaa"></li>
<input id="no" type="submit" name="sel" value="bbb"></li>
</form>

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

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

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

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

[解决办法]
在看 舌尖上的中国...好吧,稍等一下

PHP code
<?phpif(!empty($_POST['name'])){    //处理POST数据    echo 'aaaaa';    exit;}?><html><head>    <!--载入jquery库-->    <script type="text/javascript" src="Js/jquery-1.7.2.min.js"></script></head><body><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();"><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></body></html>
[解决办法]
1 表单提交后跳到另外一个页面
 2 像 @PhpNewnew 说的,使用AJAX提交
使用AJAX POST的时候,要注意提交按钮的“锁定”。

 3 给表单赋上一个唯一的uniqid,提交表单的时候检查此值。

 4 或者使用验证码(实际上和方法3原理一样)

热点排行