防止表单重复提交
我有一个简单的 php 表单,如下所示:
<?php
if(isset($_POST['myform']))
// email...
else
// display form
问题是,如果我在提交表单后刷新页面,它会提交两次。 我怎样才能防止这种情况发生?
I have a simple php form, like this:
<?php
if(isset($_POST['myform']))
// email...
else
// display form
the problem is that if I refresh the page after I submit the form, it gets submitted twice.
How can I prevent this from happening?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您应该执行重定向到带有数据已插入消息的页面...以及返回按钮以再次转到表单(如果您愿意)...
要使用
PHP
进行重定向,请使用header
函数:You should perform a REDIRECT to a page with a message that the data was inserted... and a back button to go to the form again (if you want to)...
To redirect using
PHP
use theheader
function:数据插入确认页面后执行重定向(可以使用 header() 完成,其中应清除 POST 数据并允许刷新而不重复内容。
Perform a redirect after the data is inserted to a confirmation page (can be done with header(), which should clear out the POST data and allow for refreshing without duplicating content.
如果用户有延迟并且他点击了几次提交按钮,那么可能使用客户端机制,使用js将提交按钮设置为在单击后禁用。但必须显示消息,大致类似于“正在发送消息......如果没有响应,请重新加载页面并重试”。
In the case of user having lag and he hits the submit button a few times, then maybe use client side mechanism, use js to set the submit button to disabled once it is clicked. but will have to display message saying roughly something like, "sending message ... if no response pls reload page and retry".