验证码这件大事

11年前 3

垃圾评论是非常招人恨的事儿。曾经一段时间,为了找一款反垃圾评论插件或一段及其简单的验证码代码,奋战到深夜,以至连续好几天。对于我这种白菜,自己是不懂写代码的,但是我会用,经过不断的测试,不管代码有漏洞与否,有效果就行。当然网上的高手多不胜数,只是照顾我们这种白菜却少之又少。

曾经好长一段时间,我一直用那个滑动解锁式验证码,好看又好用,不过有些复杂,而且代码老不更新,貌似都不支持最新版JQ了。于是后来就放弃了。其实我就是想找款简单的数字验证码,随机的,应付非人评论足够了。一直不明白为什么有那么多乱七八糟乱码式的评论,像病毒一样。然后人为的垃圾评论,也不可能连续来上几十条吧,也太累了。不过对于七毛党,五毛党,就很难说了。

不废话,演示见本站。

将下面代码甩进functions.php即可:

// ADD: Anti-spam Code
function olo_antispam(){
   if(!is_user_logged_in()){
        //$pcodes = substr(md5(mt_rand(0,99999)),0,4); //验证码为英文+数字组合
       $pcodes = substr(mt_rand(0,99999),0,4);    //验证码为数字组合
       $str = '

'; $str .= ''; $str .= ''; $str .= ''.$pcodes.''; $str .= ''; $str .= '

'; echo $str; } } add_action('comment_form', 'olo_antispam', 1, 1); function yanzhengma(){ if ( !is_user_logged_in() ) { $pcodes = trim($_POST['pcodes']); $subpcodes = trim($_POST['subpcodes']); if((($pcodes)!=$subpcodes) || empty($subpcodes)){ wp_die( __('错误提示:请输入正确的验证码。') ); } } } add_filter('pre_comment_on_post', 'yanzhengma');

这个代码有人应该觉得很熟悉,网上复制粘贴的病毒式的扩散了很多。都说直接用yanzhengma()调用即可,可我测试了N遍,就是不行。后来我找到了答案,是在一个博客上,不记得是谁的了,做出了类似的例子,我修改了一下。这个是自动插入评论下方的,如果手动调用的话,可以将add_action('comment_form', 'olo_antispam', 1, 1);这段代码注释,并在需要的位置调用olo_antispam()即可。

好了,有问题或者有更好的建议,欢迎交流!

3 条评论

  1. #1

    让人输入验证码很不好啊

    • @Louis Han 我相信好的验证码功能既可以减少垃圾评论,又可以提高用户体验满意度。

  2. #2

    不错不错,呵呵