给WordPress网站登录添加验证码功能在一定程度上可以有效减少机器人软件暴力破解暴力登录,对于WordPress程序可以有很多相关插件可以实现,不过这么简单的功能其实没有必要安装一个插件,通过简单的代码也很容易实现。

WordPress登录用户后台添加算术验证码 WordPress 第1张

以下代码添加到主题文件目录下 functions文件内

//后台登陆数学验证码
function lixi_add_login_fields() {
	//获取两个随机数, 范围0~9
	$num1=rand(0,9);
	$num2=rand(0,9);
	//最终网页中的具体内容
	echo "<p><label for='math' class='small'>验证码</label><br /> <input type='text' name='sum' placeholder='$num1 + $num2 = ?' class='input' value='' size='25' tabindex='4'>"
	."<input type='hidden' name='num1' value='$num1'>"
	."<input type='hidden' name='num2' value='$num2'></p>";
}
add_action('login_form','lixi_add_login_fields');
function login_val() {
	$sum=$_POST['sum'];
	//用户提交的计算结果
	switch($sum) {
		//得到正确的计算结果则直接跳出
		case $_POST['num1']+$_POST['num2']:break;
		//未填写结果时的错误讯息
		case null:wp_die('错误: 请输入验证码.');
		break;
		//计算错误时的错误讯息
		default:wp_die('错误: 验证码错误,请重试.');
	}
}
add_action('login_form_login','login_val');

第二款样式

/** 添加登录验证码 **/
add_action( 'login_form', 'wp_login_verification_code' );
add_action( 'login_form_login', 'wp_login_verification_code_login' );
function wp_login_verification_code() {
    $num1 = rand( 0, 9 );
    $num2 = rand( 0, 9 );
    echo "<p><label for='captcha'>验证码 $num1 + $num2 = ?</label><input type='text' name='sum' id='captcha' class='input' value='' size='20'>"."<input type='hidden' name='num1' value='$num1'>"."<input type='hidden' name='num2' value='$num2'></p>";
}
function wp_login_verification_code_login() {
    $sum = $_POST[ 'sum' ];
    switch( $sum ) {
        case $_POST[ 'num1' ] + $_POST[ 'num2' ]: break;
        case null: wp_die( '错误:请输入验证码!' ); break;
        default: wp_die( '错误:验证码错误,请重试!' );
    }
}

 

发表评论

后才能评论