【问题标题】:Clear form data when user clicks back当用户点击返回时清除表单数据
【发布时间】:2014-03-22 20:35:00
【问题描述】:

当用户在浏览器上单击返回时,如何清除联系表单数据,以防止垃圾邮件发送者通过单击返回、一遍又一遍地提交来多次提交表单?

【问题讨论】:

  • 这不是防止垃圾邮件发送者的方法。他们通常会自动提交表单。
  • 我不认为你可以,你可以使用验证码来防止多次提交。

标签: php html


【解决方案1】:

如果您使用的是 HTML5,那么您可以将 FORM 的自动完成功能设置为 OFF。

<form action="youractionpage" method="post" autocomplete="off">
</form>

【讨论】:

  • 太棒了!这行得通。就垃圾邮件发送者绕过此功能而言,此功能的安全性如何?
  • 垃圾邮件发送者可以根据需要多次提交您的表单。直到您的表单中有验证码。 autocomplete 只会在提交后清空您的表单。
【解决方案2】:

您可以使用 Javascript(或 jQuery)在页面加载时清空所有输入。

jQuery 示例:

<script>
$(document).ready(function() {
    $('input').val('');
});
</script>

【讨论】:

  • 正要提出这个建议,但 OP 的想法实际上并不能防止垃圾邮件。
  • 我不确定他是否真的是指垃圾邮件发送者或不懂计算机的人,他们按后退按钮,然后重新提交表单,因为他们仍然看到页面上的输入。
【解决方案3】:

在表单中使用验证码始终是一种很好的做法,这样垃圾邮件发送者就无法批量提交表单。清除表单不会有太大帮助,因为垃圾邮件发送者使用表单填写扩展程序。

【讨论】:

    【解决方案4】:

    您可以在表单字段上使用autocomplete="off" 属性,但由于现在大多数浏览器都使用本地缓存来提高性能,因此其中一些可能仍会记住这些字段。

    忽略它的一种方法是将页眉的Cache-Control 设置为不使用缓存。

    但是,仍然存在通过刷新重新发送的问题。发布表单后,按 F5 将刷新新页面并重新提交发布数据。为避免这种情况,您需要清除发布的数据。我不确定最好的方法是什么,但我遇到过一种方法:当您将redirect 用于服务器端的另一个页面时,所有$_POST 数据都会被删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多