我在页面上有一个表单,所以当我重新加载页面时,我收到“此页面已使用数据,您确定要刷新”消息。
我查看了 HTTP-303 响应代码,它消除了消息(我在 Chrome 顺便说一句),直到我提交一次表单,然后它又开始骚扰我。
基本上,我有一个可选的“联系我”表单,如果页面被刷新,它不应该抛出提示。我不认为/明白为什么我需要一个单独的页面来提交这样的简短表格。谁能帮我吗?
我在页面上有一个表单,所以当我重新加载页面时,我收到“此页面已使用数据,您确定要刷新”消息。
我查看了 HTTP-303 响应代码,它消除了消息(我在 Chrome 顺便说一句),直到我提交一次表单,然后它又开始骚扰我。
基本上,我有一个可选的“联系我”表单,如果页面被刷新,它不应该抛出提示。我不认为/明白为什么我需要一个单独的页面来提交这样的简短表格。谁能帮我吗?
最终解决方案:如何防止表单重新提交,在同一页面上
action="something"
标签。在 HTML5 中是必需的header('Location: ...')
它会像一个无限循环(废话)。所以像if (isset($_POST['some_submit_btn'])) {
header('Location: same_page')
(例如:)header('Location: ' . $_SERVER['PHP_SELF'])
和exit
即使在提交表单之后,您的页面现在也可以定期刷新。重定向清除 POST 请求或其他任何内容。
其他人指出 Ajax 是一种更简单的解决方案。我已经接受它作为答案,但如果有人想这样做,我把它作为参考。
注意:如果要在两个页面之间传递数据/刷新,则必须通过会话或 cookie 传递(我更喜欢会话)。我认为没有“干净”的解决方法
保存表单数据后,您需要重定向。它可以在同一页面上完成,这不是问题,您只需要发出 GET 请求而不是 POST。