php – 在浏览器中重新加载/刷新页面而无需重新提交表单?

我在php页面上有一个提交到同一页面的表单.
我注意到,如果我重新加载/刷新页面,表单将被重新提交.
我如何编码以最简单的方式避免这种情况?
最佳答案
一种可能性是实现后重定向获取方法.

简单地说,POST请求永远不会传递给浏览器.相反,您执行所有必要的操作并在会话中存储所需的信息,然后使用代码303进行重定向.

$page = 'show_result.php';
header('Location: '.$page, true, 303);
exit;

这样做,浏览器将显示“show_result.php”页面(GET请求)而不是POST请求的页面.这也是添加到历史记录中的页面,因此刷新并使用后退按钮将永远不会执行另一个POST请求.作为一个很好的副作用,您可以摆脱有关重新发送数据的浏览器警告,通常用户无论如何都无法决定该怎么做.

我认为这种方法的最大问题是,您需要一个会话来存储错误消息,这意味着您必须依赖cookie.如果没有重定向显示错误,浏览器将显示有关重新发送数据的警告.

转载注明原文:php – 在浏览器中重新加载/刷新页面而无需重新提交表单? - 代码日志