继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

php防止刷新重复提交

缥缈止盈
关注TA
已关注
手记 282
粉丝 34
获赞 152

1、F5 刷新

2、Ctrl+F5 刷新

3、“转至”或地址栏里回车刷新

这些快捷键的功能,主流浏览器都是相同的。

而这三种刷新方式会导致浏览器采取不同的缓存机制:

F5:不允许浏览器直接使用本地缓存,因此Last-Modified能起作用,但Expires无效

Ctrl+F5:是强制刷新,因此缓存机制失效

“转至”或地址栏里回车:正常的访问,Last-Modified和Expires都有效

总结:

浏览器在刷新时,把上一次的post参数给记忆下来并重新传递给了服务器,不管在这个过程中你是否做什么样的改动,他一概不予理会,而是忠实的把上一次所有POST的参数原封不动的重新发送给服务器

 php防止刷新页面重复提交

  作为phper,我们在开发和学习php过程中,难免要经常的接受处理表单数据,然而处理表单的时候总会有一个问题,困扰大家,刷新页面重复提交的问题。如何防止刷新页面重复提交呢?

  其实在php学习中我们会有很多的方法,比如最简单的,我们可以采用,提交成功后,进行跳转的方法。但是这样做,有时候,会有很多瓶颈,比如,如果我们的页面有很多内容需要加载,尤其是很多跟后台打交道,这样如果跳转重新加载页面的话,可能会对服务器造成压力。这里我们可以采用另外一种方法,来防止刷新页面重复提交,以便大家更好的学习php。

  我们可以利用session来解决。我们首先新建一个session,并赋值,第一次提交后改变session的值,当第二次再此提交此内容时,如果不是我们的赋值,就不在处理传过来的数据。

如:

<?php

session_start();

$_SESSION['num'] = 0;

if(isset($_POST['action'] &&$_POST['action']=='submit')){

if($_SESSION['num'] == 0){

 echo '<a href="'.$_SERVER['PHP_SELF'].'">'请再次尝试</a>;'

 $_SESSION['num'] = 1;

}else{

 echo '您已经提交过了,请不要重复提交';

 }

}

?>

前台页面没有给出,相信大家都明白前面该怎么写。其实诸如防止刷新页面重复提交的方法,还有很多,在以后php学习交流中,还会更多的列举出来。


打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP