PHP表单 - 带验证蜜罐

时间:2013-07-29 17:11:09

标签: php forms honeypot

我有以下内容,但是对于垃圾邮件机器人是开放的。 我想放一个蜜罐,而不是验证码。 以下代码适用于名称,电子邮件,消息的验证, 但我不能让它与蜜罐一起工作。

任何人都可以查看“蜜罐”代码并告诉我如何修复它吗?

我希望表单能够提供$ success2 =“不允许垃圾邮件”,表示提交表单,但实际上并未提交表单。

由于

表格:

<form id="contactform" action="send2.php" method="post"><div id="success"></div><div id="error"></div>
<label for="name">Name:</label><input type="text" id="name" name="name"/>
<label for="email">Email:</label><input type="text" id="email" name="email"/>
<label for="message">Message:</label><textarea id="message" name="message" rows="12" cols="20"></textarea>
<label id="robot">Are you a robot?</label><input type="text" name="robot" id="robot"> 
<input type="submit" value="Send your message" id="send" />
</form>

PHP: 可在此处找到:http://goviewmy.com/contact/showcode/

很抱歉,但我无法在此问题中发布PHP代码,因此我附上了一个链接。

由于

1 个答案:

答案 0 :(得分:12)

如果Honeypots的字段名称听起来合法,那么它们的效果最好,它们也应该在页面加载后使用javascript隐藏以更改css。 (大多数)机器人没有启用javascript,所以他们无法处理不应该填写此字段。

我使用这样的东西:

<div class='req'>
    <label for='website'>Leave blank</label>
    <input type='text' name='website'>
</div>

用jquery隐藏它:

$(document).ready(function(){
    $(".req").hide();
});

如果字段填写了类似

的字段,则拒绝服务器端
if($_POST['website'] != ''){
    echo "It appears you are a bot!";
}
else{
//process the rest of the form
}