如何防止重复表单提交
我有一些表格简单的电子邮件的脚本,我得到重复提交...如何防止重复表单提交
那么,什么是防止重复提交的最简单的方法?
我的代码..
<form action="main_contact.php" method="post" name="contact_form">
<input type="text" name="contact_name" placeholder="Name">
<input type="email" name="contact_email" placeholder="Email">
<input type="text" name="contact_subject" placeholder="Subject">
<textarea cols="30" name="contact_message" rows="10" placeholder="Your Message"></textarea>
<input type="submit" value="Send">
</form>
<?php
if(isset($_POST['contact_form'])){
var_dump($_POST);
}
?>
如果你使用像Laravel5或Symfony的任何框架,你会得到它的“开箱即用”。
总之: 注册一个会话令牌并在第一次提交表单后使其无效。
嘿..它简单的电子邮件脚本,所以没有MySql .. –
你不需要MySql来启动一个会话并注册一个令牌。 –
您可以使用jQuery禁用按钮提交表单提交后:
$('form[name="contact_form"]').submit(function(){
$(this).find('input[type="submit"]').prop('disabled', true);
});
这是一个直接的方法。此外,请确保您在提交后向用户显示成功消息。即使重定向到成功页面也是有效的,并且可以帮助跟踪转换。 :) –
你只需要禁用或使可见性隐藏后,只需点击提交按钮。拳头给予id
的提交按钮
<input type="submit" value="Send" id="sub_id">
,然后使其隐藏或禁用JavaScript中,一旦你提交
document.getElementById('sub_id').style.visibility='hidden';
你检查日志,以尝试的形式和拼凑用户的旅程? – Progrock
对不起,我不明白? –
我的意思是为什么会发生这种行为?用户是否在等待某些事情发生,并多次点击按钮?或者日志或分析揭示另一个原因?另见:http://*.com/questions/926816/how-to-prevent-form-from-submitting-multiple-times-from-client-side – Progrock