wordpress无插件纯代码实现注册验证 拒绝恶意注册

wordpress无插件纯代码实现注册验证 拒绝恶意注册,第1张

概述最近WordPress日记进行了一次改版,改版后使用了TML用户自定义登录注册插件,但是发现一个很严重的问题,那就是突然开始出现很多恶意注册用户,搞的是很烦人,...

最近wordpress日记进行了一次改版,改版后使用了TML用户自定义登录注册插件,但是发现一个很严重的问题,那就是突然开始出现很多恶意注册用户,搞的是很烦人,所以就想着添加一个注册时的验证,到网上搜到很多,比如使用极验的方法,但是还要注册账号什么的,比较麻烦,不太想用。那就继续找,终于发现一个纯代码实现的方法。具体如下:把下面这段代码添加到自己的functions.PHP,其中的验证问题我使用了本站的域名“www.wp-diary.com”,你也可以改成其他内容。注意改的时候,代码第四行和倒数第四行都有,要改两处哦

add_action( 'register_form','add_security_question' );

function add_security_question() { ?>

<p>

<label><?PHP _e('请输入本站域名:www.wp-diary.com') ?><br />

<input type="text" name="user_proof" ID="user_proof" size="25" tabindex="20" /></label>

</p>

<?PHP }

add_action( 'register_post','add_security_question_valIDate',10,3 );

function add_security_question_valIDate( $sanitized_user_login,$user_email,$errors) {

// 如果没有回答

if (!isset($_POST[ 'user_proof' ]) || empty($_POST[ 'user_proof' ])) {

return $errors->add( 'proofempty','<strong>错误</strong>: 您还没有回答问题。' );

// 如果答案不正确

} elseif ( strtolower( $_POST[ 'user_proof' ] ) != 'www.wp-diary.com' ) {

return $errors->add( 'prooffail','<strong>错误</strong>: 您的回答不正确。' );

}

}效果如下:

如果你觉得一个问题不过瘾,wordpress还可以实现注册随机验证:session_start();

function rand_reg_question(){

$register_number=rand(0,2); // 设置随机数的返回范围

$_SESSION

[‘register_number’]=$register_number;

}

add_action(‘login_head’,’rand_reg_question’);

&nbsp;

global $register_questions;

global

$register_answers;

// 添加问题数组

$register_questions=array(‘中国的首都在哪里?’,’Google是哪个国家的公司?’,’楚狂人博客是用什么

建站程序搭建的?’);

// 添加答案数组(与上面的问题对应)

$register_answers=array(‘北京’,’美国’,’wordpress’);

&nbsp;

add_action(

‘register_form’,‘add_security_question’ );

function add_security_question() {

global $register_questions;

$register_number=

$_SESSION[‘register_number’];

?&gt;

&lt;p&gt;

&lt;label&gt;&lt;?PHP echo $register_questions[$register_number];?&gt;&lt;br /&gt;

&lt;input type=”text”

name=”user_proof” ID=”user_proof” class=”input” size=”25〃 tabindex=”20〃 /&gt;

&lt;/label&gt;

&lt;/p&gt;

&lt;?PHP }

&nbsp;

add_action( ‘register_post’,

‘add_security_question_valIDate’,

$errors) {

global $register_answers;

$register_number=$_SESSION[‘register_number’];

if (!isset($_POST[ ‘user_proof’ ]) ||

empty($_POST[ ‘user_proof’ ])) {

return $errors-&gt;add( ‘proofempty’,‘&lt;strong&gt;错误&lt;/strong&gt;: 您还没有回答问题。’ );

} elseif (

strtolower( $_POST[ ‘user_proof’ ] ) != $register_answers[$register_number] ) {

return $errors-&gt;add( ‘prooffail’,‘&lt;strong&gt;

错误&lt;/strong&gt;: 您的回答不正确。’ );

}

}

这个功能本站没有启用,就不给大家测试,需要使用wordpress随机注册验证的朋友可以自行测试一下,祝你成功!

总结

以上是内存溢出为你收集整理的wordpress无插件纯代码实现注册验证 拒绝恶意注册全部内容,希望文章能够帮你解决wordpress无插件纯代码实现注册验证 拒绝恶意注册所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/998195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存