【发布时间】:2014-03-22 20:35:00
【问题描述】:
当用户在浏览器上单击返回时,如何清除联系表单数据,以防止垃圾邮件发送者通过单击返回、一遍又一遍地提交来多次提交表单?
【问题讨论】:
-
这不是防止垃圾邮件发送者的方法。他们通常会自动提交表单。
-
我不认为你可以,你可以使用验证码来防止多次提交。
当用户在浏览器上单击返回时,如何清除联系表单数据,以防止垃圾邮件发送者通过单击返回、一遍又一遍地提交来多次提交表单?
【问题讨论】:
如果您使用的是 HTML5,那么您可以将 FORM 的自动完成功能设置为 OFF。
<form action="youractionpage" method="post" autocomplete="off">
</form>
【讨论】:
autocomplete 只会在提交后清空您的表单。
您可以使用 Javascript(或 jQuery)在页面加载时清空所有输入。
jQuery 示例:
<script>
$(document).ready(function() {
$('input').val('');
});
</script>
【讨论】:
在表单中使用验证码始终是一种很好的做法,这样垃圾邮件发送者就无法批量提交表单。清除表单不会有太大帮助,因为垃圾邮件发送者使用表单填写扩展程序。
【讨论】:
您可以在表单字段上使用autocomplete="off" 属性,但由于现在大多数浏览器都使用本地缓存来提高性能,因此其中一些可能仍会记住这些字段。
忽略它的一种方法是将页眉的Cache-Control 设置为不使用缓存。
但是,仍然存在通过刷新重新发送的问题。发布表单后,按 F5 将刷新新页面并重新提交发布数据。为避免这种情况,您需要清除发布的数据。我不确定最好的方法是什么,但我遇到过一种方法:当您将redirect 用于服务器端的另一个页面时,所有$_POST 数据都会被删除。
【讨论】: