【问题标题】:How to prevent duplicate email submissions in a form (newsletter)如何防止在表单中重复提交电子邮件(时事通讯)
【发布时间】:2011-05-20 08:34:52
【问题描述】:

我的网站页脚中有一个简单的时事通讯表单,我想防止访问者两次提交他们的电子邮件。

我知道有很多方法可以做到这一点,使用数据库就是其中之一。还有一些人使用 javascript 或一些服务器端脚本,但我不确定如何将它们应用到我的时事通讯表单中。

这里是时事通讯代码:

<form method="post"  action="processnewsrequest.php">

      <fieldset>

           <label for="email">Email:</label>
           <input name="email" type="text" id="email" placeholder="Enter your email" required="required" />
           <input type="submit" class="submit" id="news-submit" value="Join" />

      </fieldset>

</form> 

处理此表单的脚本很简单。它首先列出了 email 变量;检查是否输入了电子邮件(或显示错误消息);如果成功,则将简报请求发送给站点管理员,并且访问者会收到一条消息,感谢他们加入简报。

如何防止重复提交电子邮件?以及如何应用这些方法。我希望我不必使用数据库。

非常感谢!

【问题讨论】:

    标签: php duplicates


    【解决方案1】:

    这是一个 jQuery 代码 sn-p 禁用意外双击提交按钮:当第一次提交表单时它只是禁用提交按钮。

    $('form').submit(function(){
        $('input[type=submit]', this).attr('disabled', 'disabled');
    });
    

    这假设您要防止的双重提交是“糟糕,我点击了两次”类型。如果您的目标是再次注册但忘记他已经注册的访问者 - 您将必须检查数据库或您存储时事通讯电子邮件地址的任何位置。

    【讨论】:

    • 对于数据存储来说,一个数据库才有意义 - 建立一个数据库并不需要太多努力。
    【解决方案2】:

    您需要一种方法来对照您已有的电子邮件地址列表检查输入的电子邮件地址。如果这些电子邮件地址(与站点管理员一起)没有存储在数据库中,或者您可以通过其他方式查找,那么您就不走运了。

    从您的站点管理员那里了解他们如何存储电子邮件地址。

    【讨论】:

    • 我是这个网站的管理员(正在开发它)。电子邮件将发送到电子邮件地址。
    • 嗯,对。我只是根据您在问题中的评论说他们已被发送给站点管理员。
    猜你喜欢
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多