PHP避免刷新页面重复提交

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP避免刷新页面重复提交相关的知识,希望对你有一定的参考价值。

情景:从html提交数据到x.php 在x.php中$_POST数据写库并且显示,当x.php刷新时,入库操作会被再次执行,用了if($_POST) 并且在程序结尾给$_POST赋空值,但是刷新的时候POST依然有值,求知道怎么避免反复提交。 关键:1.数据从html过来的,不是PHP 2.要在x.php显示获取到的数据 3.要入库
4.是刷新x.php 不是直接访问

参考技术A 这个解决的办法是在 x.php 中加入跳转代码,使页面跳转就好了,例如,html->x.php->数据处理后跳转到成功页面->success.html 参考技术B 解决办法:在表单第一次到后台,在执行代码的最后部分加上重新指向本页,模仿我们首次进入本页的效果。 参考技术C 可以参考 thinkphp 里的 表单令牌验证 参考技术D if($_POST && $_POST['submit'])

$_POST['submit']这里重点不是要接收它的值, 而是判断他有没有按这个按钮,也就是是否提交表单,如果提交了就执行它下面里的程序,你可以做以下理解
if(提交表单)
echo '就接收表单里的一些值';
else
echo '表单没有被提交';


不知道楼主是否懂了本回答被提问者和网友采纳

php 使用history.go();window.location.reload();返回页面刷新后会提示‘如图’不想再重复提交一次怎么办

我是修改的数据,所以提交后返回时 提示刷新之前动作,那么数据就会在重复修改一次

在浏览器返回上一步操作的时候,上一个页面的表单存在缓存,所以执行普通的刷新操作会有个浏览器的警告提示,这时候需要进行强制刷新的操作。只需要将window.location.reload()改为:window.location.href=window.location.href即可。 参考技术A 给表单加上token或者验证码,每次提交都验证一下,避免重复提交或者csrf

以上是关于PHP避免刷新页面重复提交的主要内容,如果未能解决你的问题,请参考以下文章

PHP关于避免 页面刷新时 重复提交表单的问题。。

重定向到同一页面php后避免表单重新提交[重复]

php避免form表单重复提交

Java中避免表单重复提交

php 如何避免刷新页面重复插入数据到数据库

php 使用history.go();window.location.reload();返回页面刷新后会提示‘如图’不想再重复提交一次怎么办