在这个问题中,我将解决我的问题的两个部分。
第1部分:
我有一个php + javascript验证器表单,如果javascript验证了正确的rand数字(由php生成),它会向我的客户端发送一封电子邮件。 到现在为止还挺好... 问题是兰特数量不足以避免垃圾邮件(事实上,我的客户每天通过虚假的阿迪达斯活动收到大约20封电子邮件)。所以,我的想法来自于获得一个兰特数+10(迫使用户解决计算)。
第2部分:
我不能确定解决这个问题的最佳方法是什么,但我认为在这3个选项中:
php
生成的兰特数,并将另一个兰特数加起来。的 PHP 的
$ran_num = rand(0,9999);
$exclude_check = "valid";
的 JAVASCRIPT 的
if (document.getElementById("spambox").value != "<?php echo $ran_num ?>") {
alert('<?php echo $spamerror_s5_qc ?>');
return false;
}
答案 0 :(得分:0)
简单的蜜罐示例,这是我见过的最有效的方法,不涉及ip禁止和东西。
您希望在表单上添加一个您打算让用户填写的字段。然后在前端用javascript隐藏它。机器人不会有JavaScript,所以他们会看到这个字段并填写它。将其命名为“必需”或“first_name”等重要内容。
然后在你的PHP上:
if($_POST['first_name']){
//YA FILTHY BOT!
}
else{
//process form
}