WordPress用户注册增加验证禁止机器注册-wordpress修改-泓源视野

WordPress用户注册增加验证禁止机器注册

WordPress用户注册增加验证禁止机器注册插图

如上图,wordpress 默认会给管理员发送新用户注册和修改密码的邮件提醒,人性化的时代,我不懂为什么wordpress建站一直不将这个功能改成可设置项,网上关于这个问题的解决方案是修改wordpress框架代码,去掉发送邮件的代码,我是坚决不改wordpress框架代码的,而且更新一次改一次,不麻烦么?

我一个小站都受不了每天这样的邮件提醒,我不知道那些大战是如何解决的,我可以肯定每天收到的新用户注册均为机器人注册,根本不是真实用户,那么注册毫无意义,因此今天抽空想了个笨办法解决这个问题.

WordPress用户注册增加验证禁止机器注册插图1

思路:

  1. 像这种每天垃圾注册用户,都是机器人,是有人用软件批量扫描wordpress网站批量注册的.
  2. 如上图,我博客是有注册和登陆验证码的,然而并没有什么卵用,那么只有2种可能,一种是通过WP我不知道的接口无视验证码注册,第二种可能是人家软件自带验证码试别功能,给我试别了验证码.
  3. 基于上诉情况,我决定在给注册加一层验证码机制,2种验证码同时存在的情况下,能直接杜绝掉软件批量注册的可能,虽然如果想,还是可以批量注册,但是它那个软件肯定是批量的,因此不会特殊对待因为我而把软件改成双验证码,所以这个想法是可行的,除非,真的是利用wordpress 我不知道的无视验证码的注册接口批量注册.....不管如何,先试验一段时间效果.那么让我们开始把.

实现代码步骤:

我目前已经有一个图片验证码了,所以只需要在加一个验证码就行:

//WordPress新用户注册随机数学验证码function add_security_question_fields() {  //获取两个随机数, 范围0~9 $num1=rand(0,10); $num2=rand(0,10);  //最终网页中的具体内容 echo "<p><label for='math' class='small'>真人识别:$num1 + $num2 = ? </label><input type='text' name='sum' class='input' value='' size='25'>" ."<input type='hidden' name='num1' value='$num1'>" ."<input type='hidden' name='num2' value='$num2'></p>";}add_action('register_form','add_security_question_fields');add_action( 'register_post', 'add_security_question_validate', 10, 3 );function add_security_question_validate( $sanitized_user_login, $user_email, $errors) { $sum=$_POST['sum'];//用户提交的计算结果 switch($sum){ //得到正确的计算结果则直接跳出 case $_POST['num1']+$_POST['num2']:break; //未填写结果时的错误讯息 case null:wp_die('<script>alert("错误:请输入真人识别结果!");window.history.go(-1);</script>');break; //计算错误时的错误讯息 default:wp_die('<script>alert("错误:真人识别结果错误,请重试!");window.history.go(-1);</script>');}}add_action( 'add_security_question','register_form' );

将上面的代码添加到主题的 functions.php 文件末尾处即可.

效果图:

WordPress用户注册增加验证禁止机器注册插图2

本文由 泓源视野 作者:admin 发表,其版权均为 泓源视野 所有,文章内容系作者个人观点,不代表 泓源视野 对观点赞同或支持。如需转载,请注明文章来源。
20

发表评论

Protected with IP Blacklist CloudIP Blacklist Cloud
您是第8231615 位访客, 您的IP是:[18.97.14.87]