极验验证:Wordpress登录页面手工添加验证码完美教程 免安装插件
前些日子我写了关于极验验证的注册页面的代码修改教程,但是当时只有注册页面的代码,因为登录、评论、找回密码这几项当时都没有能够琢磨出来,但是这次经过查阅许多wordpress的相关文档,和比对其他的验证码插件,以及查看了多个wordpress的主题文件,根据其中的相关代码的解读,之后发现了可以解决问题的方法,其实也很简单。
本站效果图如下:
下面我们开始修改wordpress的代码,这里我需要修改的是wordpress主题文件中名为functions.php的PHP文件,其实也很简单。
关于极验验证验证码的文件可以在Wordpress免插件手工添加新用户注册页面验证码(极验验证)教程中找到下载网址。
好了废话不多说,先备份好要修改的文件,防止修改的时候出现错误或者覆盖了原文件出现错误无法恢复。
打开functiongs.php文件,然后添加如下两部分代码
/———————–下面是正式代码部分——————————
//加载显示验证码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| // WordPress 注册表单添加验证问题 function add_security_question() { ?> <p> <?php require_once(“class.geetest.php”); $geetest = new Geetest(); $geetest->set_captchaid(“你在极验验证申请到的ID”); if ($geetest->register()) { echo $geetest->get_widget(“float”);//若采用弹出式,要添加第二个参数(提交按钮的id) } else { echo “use your own captcha HTML web code!”;//这里输出网站原有验证码 } ?> </p> <br /> <br /> <?php } add_action( ‘login_form’, ‘add_security_question’ );
|
加载验证码部分的代码和注册页面的加载验证码代码是一致的,因此,如果你已经添加了此处的代码,则可以此部分代码前面或则后面加上一句add_action( ‘login_form’, ‘add_security_question’ );即可。
//验证验证码正确性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| add_action(‘wp_authenticate_user’, ‘add_login_security_question_validate’,10,3); function add_login_security_question_validate($user_login) { require_once(“class.geetest.php”); $geetest = new Geetest(); $geetest->set_privatekey(“你在极验验证申请到的KEY”); if (isset($_POST[‘geetest_challenge’]) && isset($_POST[‘geetest_validate’]) && isset($_POST[‘geetest_seccode’])) { $result = $geetest->validate($_POST[‘geetest_challenge’], $_POST[‘geetest_validate’], $_POST[‘geetest_seccode’]); if ($result == TRUE) { //echo ‘Yes!’; } else if ($result == FALSE) { return new WP_Error( ‘incorrect_password’, ‘<strong>错误</strong>: 请将拼图滑倒正确位置。’ ); } else { echo ‘FORBIDDEN’; } } else { return new WP_Error( ‘incorrect_password’, ‘<strong>错误</strong>: 请将拼图滑倒正确位置。’ ); //echo “use your own captcha validate “; //网站原有验证码的验证 //$result = your_own_captcha_validate() } //do any extra validation stuff here return $user_login; }
|
—————————-代码到此结束——————————–/
替换好代码就可以上传覆盖原文件了,然后打开看看效果吧!