大千世界无奇不有,刚发现还有趣味拖动验证码
刚才为修正偶的 Qaptcha滑动解锁插件 查找Ajax Commit插件的时候无意中扒拉到竟然还有这种类型的验证码.可见现在网络的发达以及各种spam的逍遥.
第一步:下载程序文件
国外一个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>
好了弄完了.其实总的来说还是感觉不是很好用的功能.刚才我解锁了两次总是提示我错误.还好第三次对了.木有偶的滑动解锁舒服.嘿嘿嘿嘿
本文部分转载并修改来源和处理方式,并调整代码格式. 原作者传送门
分享到: | |
楼主好,我用了此方法实现了图标法解锁,但有一个问题一直解决不了,就是偶尔会解锁失败,不知道你有解决办法没有,求教。
jquery的东西比较占资源,说不好浏览器可能会出现问题
换了jquery库文件和调整了css之后就解决啦,不过你的这个滑动解锁的我也装了,两个换着用,感谢分享。
哈,有用就好