留言本总是有些垃圾留言,可能是验证码的算法不够复杂。
从网上看了下,有种方法我试用了一下,垃圾留言直接减少为0,甚至不需要验证码。
方法,
在留言界面中,加上一个文本框,然后用css调置为style:display:none,这样做的目的是,一,如果是人在留言,那么人是看不到这个文本框的,自然这个文本框的值为空;如果是机器人的话,由于机器人看得到这个文本框,它以为需要填这上文本框,自然值不为空。当提交的时候处理时,判断一下这个隐藏的文本框的值是否为空,如果为空,那么是人的留言,入库操作。如果不为空,那么为机器人提交的,记下它的ip,refer,地理位置,不做留言入库操作。接下来可以做下拒绝这些ip的留言。
如何防止站外提交呢?
$strpos=strpos($_SERVER['HTTP_REFERER'],"www.siyuroom.com");
if($strpos!=""){
//可以留言入库
}else{
//记下ip,refer,地理位置,下次可以直接拒绝
}