防止表单重复提交

发布于 2024-09-16 18:19:15 字数 179 浏览 6 评论 0原文

我有一个简单的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

千秋岁 2024-09-23 18:19:15

您应该执行重定向到带有数据已插入消息的页面...以及返回按钮以再次转到表单(如果您愿意)...

要使用 PHP 进行重定向,请使用header 函数:

header('Location: http://www.example.com/');

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 the header function:

header('Location: http://www.example.com/');
我早已燃尽 2024-09-23 18:19:15

数据插入确认页面后执行重定向(可以使用 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.

甜柠檬 2024-09-23 18:19:15

如果用户有延迟并且他点击了几次提交按钮,那么可能使用客户端机制,使用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".

倾城°AllureLove 2024-09-23 18:19:15
session_start();    
if (!$_SESSION['REQUEST_TYPE_USER_ID'] == $_POST)
{
//your code
//after the success process
    $_SESSION['REQUEST_TYPE_USER_ID'] = $_POST;
}
else
{
// request duplicated
}
session_start();    
if (!$_SESSION['REQUEST_TYPE_USER_ID'] == $_POST)
{
//your code
//after the success process
    $_SESSION['REQUEST_TYPE_USER_ID'] = $_POST;
}
else
{
// request duplicated
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文