给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( '错误:验证码错误,请重试!' );
    }
}

 

声明:本站文章原创有部分资源来源于网络,如无特殊说明或标注。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系 admin@liitk.com 进行删除处理!。