PHP中history.back(-1)导致的此网页的本地副本已过期[已解决][纠错]

php程序中在a.php提交数据到b.php执行相关操作后返回a.php并刷新,在b.php中使用

echo "<script>alert('提示:".$r."'); window.history.back(-1); </script>";

但是测试时发现,返回后直接提示本地副本已过期需要重新下载!后面查询一番资料已解决。红色字体为纠错内容。

1.将a.php中的<head runat=”server”>? 改为<head>保存即可。

2.也可能是缓存被清理了

检查页面代码
<META HTTP-EQUIV="pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> 
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或
response.setHeader("Pragma","No-cache"); 
response.setHeader("Cache-Control","no-cache"); 
response.setDateHeader("Expires", 0); 
把上面这些去掉

 

也可以参考https://bbs.csdn.net/topics/200067714

纠错:按照上面方法1修改后发现还是不行,好像是因为a.php提交post到a.php自身后查询出相关数据,然后再把这些查询出的数据更新后post到b.php中去,b.php处理后再返回前一个页面a.php。我个人理解为post到b.php之前需要保证a.php本身没有提前进行其他post操作或输出,否则还是会提示网页过期。后来把a.php里的post操作改成get获取了。解决~

if(!isset($_GET['select_day'])){//如果没有获取到就默认为今天
	$select_day=date("Y-m-d",intval(time()));

}else{
	$select_day=$_GET['select_day'];

	};

//省略 sql 查询操作***

 

<input type="date" name="select_day"  onchange="document.location='?select_day='+this.value+'&select_class=<?php echo $select_class?>';" value="<?php  echo  $select_day;?>"/>

 

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/php中history-back-1导致的此网页的本地副本已过期已解决/

赞赏

微信赞赏支付宝赞赏

weixin-get-article-list
redis-expire-time
php在线文件管理源码