我先说下,没有绝对的防止恶意注册的,只能说增加注册的难度?所以接下来我们从增加注册的难度方面来讲。
1、引入第三方的验证方式(手机号、算术题、拼图,滑块...)
2、关闭注册的入口,采用人工注册。
下面给大家分享一个WordPress新用户注册时添加随机数学验证码代码实例(将以下的代码放置在当前所使用的主题根目录下function.php文件里的?>之前):
/**
* WordPress新用户注册随机数学验证码
*/
function add_security_question_fields()
{
//获取两个随机数, 范围0~9
$num1 = rand(1, 9);
$num2 = rand(2, 9);
//最终网页中的具体内容
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');
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('错误:请输入验证码!');
break;
//计算错误时的错误讯息
default:
wp_die('错误:验证码错误,请重试!');
}
}
add_action('register_post', 'add_security_question_validate', 10, 3);