当前位置:软件学习 > Word >>

给wordpress加上QapTcha滑块验证

这几天博客的spam漫天飞啊满天飞…他娘的锤子..天天给我一大堆垃圾评论删…烦都烦死了..
关于防止垃圾评论,网上有很多方法…WP呢,也有不少插件,比如说wp-seccod什么的..
这里我另外写一个防止垃圾评论的方法

传统验证码要求用户先辨认(或者计算),然后敲击键盘输入结果。使用QapTcha仅需滑动一下鼠标,可以很好的提高用户体验。其原理是当滑动条滑动到指定位置时,会由后台发起一个请求,该请求会往session里加上一些内容,我们只要在提交的时候判断一下在session里有没有这些内容就可以了。

1、先去官网下载最新版的压缩包,解压.
由于QapTcha依赖于jquery,其包内自带了jquery的js文件,把文件夹改名后上传.
我的qaptcha文件夹的路径为 Http://x73.cc/wp-includes/qaptcha.
2、找到QapTcha.jquery.js,大约在11行

view sourceprint?01 jQuery.QapTcha = { 

02     build : function(options) 

03     { 

04         var defaults = { 

05             txtLock : Locked : form can be submited, //解锁前提示,可自由修改 

06             txtUnlock : Unlocked : form can be submited, //解锁后提示,可自由修改 

07             disabledSubmit : true, 

08             autoRevert : false, 

09             PHPfile : php/Qaptcha.jquery.php //把这个地址改为/wp-includes/qaptcha/php/Qaptcha.jquery.php 

10         };

3.如果你要修改样式,请对照自己的主题修改QapTcha.jquery.css即可

4.修改主题里的functions.php,加上

view sourceprint?01 function my_wp_head() {//这个函数里的内容当然也可以直接写到header.php里 

02   if(is_singular() && !is_user_logged_in()) { 

03     echo ´<script type="text/javascript" src="´.get_bloginfo("wpurl").´/wp-includes/qaptcha/jquery/jquery-ui.js"></script>´." "; 

04     echo ´<script type="text/javascript" src="´.get_bloginfo("wpurl").´/wp-includes/qaptcha/jquery/jquery.ui.touch.js"></script>´." "; 

05     echo ´<script type="text/javascript" src="´.get_bloginfo("wpurl").´/wp-includes/qaptcha/jquery/QapTcha.jquery.js"></script>´." "; 

06     echo ´<link rel="stylesheet" href="´.get_bloginfo("wpurl").´/wp-includes/qaptcha/jquery/QapTcha.jquery.css" type="text/css" />´." "; 

07     echo ´<script type="text/javascript"> 

08   $(document).ready(function(){ 

09     $("#QapTcha").QapTcha({disabledSubmit:true}); 

10   }); 

11 </script>´." "; 

12   } 

13 } 

14 add_action(´wp_head´, ´my_wp_head´, 100); 

15 function my_preprocess_comment($comment) { 

16   if (!is_user_logged_in()) { 

17     if(!session_id()) session_start(); 

18     if(isset($_POST[´iQapTcha´]) && empty($_POST[´iQapTcha´]) && isset($_SESSION[´iQaptcha´]) && $_SESSION[´iQaptcha´]) { 

19       unset($_SESSION[´iQaptcha´]); 

20       return($comment); 

21     } else wp_die("抱歉,你没有通过验证。");//提示语自行修改 

22   } else

23     return($comment); 

24 } 

25 add_action(´preprocess_comment´, ´my_preprocess_comment´);

5.然后修改主题的comments.php(评论模板)文件,找到你希望滚动条出现的位置,加上

view sourceprint?1 <div id="QapTcha"></div>

6.把文件上传到你的服务器,看看效果吧,然后再修改一下样式,直到自己满意为止.

原创文章,转载请注明: 转载自Ps7isys Blog

 

补充:web前端 , HTML/CSS  ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,