大千世界无奇不有,刚发现还有趣味拖动验证码  

刚才为修正偶的 Qaptcha滑动解锁插件  查找Ajax Commit插件的时候无意中扒拉到竟然还有这种类型的验证码.可见现在网络的发达以及各种spam的逍遥.

image贴一下具体做法,相对比较繁琐一下下.

第一步:下载程序文件

国外一个N人开发的代码 传送门. 不支持ajax需要改装

第二步:安装程序文件

解压到themes改名字为ajax-fancy-captcha-php

添加到代码到header.php文件

<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/ajax-fancy-captcha-php/jquery-1.7.min.js"></script><script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/ajax-fancy-captcha-php/latest-jquery-ui/jquery-ui.min.js"></script><script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/ajax-fancy-captcha-php/captcha/jquery.captcha.js"></script><script charset="utf-8" type="text/javascript">// <![CDATA[
$(function() {
    $(".ajax-fc-container").captcha({
        borderColor: "silver",
        captchaDir: "<?php bloginfo('template_directory');  ?>/ajax-fancy-captcha-php/captcha/",
        url: "<?php bloginfo('template_directory');  ?>/ajax-fancy-captcha-php/captcha/captcha.php",
        formId: "commentform",
        text: "下面是评论验证码,请用鼠标将 <span>scissors</span> 拖进右边的圆框中即可!"
    });
});
// ]]></script>

最好放在head届时之前

这个jQuery最好是用标注方式加载.我在Qaptcha中做了说明的.其实用googleapi速度快还省带宽和网速
session_start();
if($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['captcha']) && $_POST['captcha'] == $_SESSION['captcha']){//unset($_SESSION['captcha']);

把上面的这两句代码复制到你的评论回复程序中,如果你是用的是Willin Kan的“WordPress-jQuery-Ajax-Comments v1.3”代码,请添加上面的代码到下面这段代码的下方

if ( $flood_die ) {
    err(__('您发表评论也太快了'));
    }
}

复制

<?php }else{err(__('您输入的验证码错误,请拖动相应图标到圆内。'));}?>

到文件的最后 如果您使用的是系统自带的wp-comments-post.php文件接收评论的话请按以下进行操作.复制

session_start();
if($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['captcha']) && $_POST['captcha'] == $_SESSION['captcha']){//unset($_SESSION['captcha']);

到wp-comments-post.php文件(根目录下)

$comment_parent = isset($_POST['comment_parent']) ? absint($_POST['comment_parent']) : 0;

之前,复制

}else{wp_die( __('您输入的验证码错误,请点击后退按钮返回并拖动相应图标到圆内。
<input onclick="javascript:history.go(-1)" type="button" value="返回" />'));}

$comment_id = wp_new_comment( $commentdata );

之上

接下来把下面这段代码放到你的主题comments.php文件下的合适的位置

<div id="errmsg" class="ajax-fc-container" style="margin-top: 15px; padding: 0px;">您必须启用 javascript 才能在这儿看到验证码!</div>

好了弄完了.其实总的来说还是感觉不是很好用的功能.刚才我解锁了两次总是提示我错误.还好第三次对了.木有偶的滑动解锁舒服.嘿嘿嘿嘿

本文部分转载并修改来源和处理方式,并调整代码格式.   原作者传送门

欢迎大佬支持本博客的发展 -- Donate --

本文链接:大千世界无奇不有,刚发现还有趣味拖动验证码

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
  1. 楼主好,我用了此方法实现了图标法解锁,但有一个问题一直解决不了,就是偶尔会解锁失败,不知道你有解决办法没有,求教。

    • jquery的东西比较占资源,说不好浏览器可能会出现问题

      • 换了jquery库文件和调整了css之后就解决啦,不过你的这个滑动解锁的我也装了,两个换着用,感谢分享。

  1. 没有通告