PHP联系人避免垃圾邮件


PHP contact avoid Spam

在这个问题中,我将讨论问题的两个部分。

第1部分:

我有一个php+javascript验证器表单,如果javascript验证了正确的rand数字(由php生成),它会向我的客户发送一封电子邮件。到目前为止还不错。。。问题是兰特的数量不足以避免SPAM(事实上,我的客户每天收到大约20封虚假阿迪达斯活动的电子邮件)。所以,我的想法来自于得到一个兰特数+10(迫使用户解决计算)。

第2部分:

我不确定解决这个问题的最佳方法是什么,但我认为在这3个选项中:

  1. php变量内的和rand数
  2. 读取javascript中的rand数字,并在javascript中求和10
  3. 读取php生成的rand数,并对另一个rand数求和

这是我的代码,没有总和:

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;
}

简单的蜜罐示例,这是我见过的最有效的方法,不涉及ip禁令和其他内容。

您需要在表单上添加一个不需要用户填写的字段。然后在前端用javascript隐藏它。机器人不会有javascript,所以他们会看到这个字段并填写它。将其命名为听起来很重要的内容,如"required"或"first_name"等。

然后在你的PHP上:

if($_POST['first_name']){
    //YA FILTHY BOT!
}
else{
     //process form
}