全百科精品资源分享
免费优质资源下载平台

分享简单代码实现wordpress用户注册IP地址限制

播放按钮

由于某种需要,在某些场景下,我们可能需要限制单一IP注册用户的个数,看 起来复杂,其实实现起来之用一小段代码即可。

思路:将每个用户注册的IP写入文本文件,新手户注册时判断IP是否包含在该文本中(或者出现的次数)
优点:不需要安装插件,复制粘贴代码即可

function validate_reg_ip() {
	global $err_msg; 
	$allow_time = 1; //每个IP允许注册的用户数
	$allowed = true;
	$ips = file_get_contents("ip.php");
	$times = substr_count($ips,getIp());
	if($times >=$allow_time) {
		$allowed = false;
		$err_msg = "该IP注册用户超过上限,无法继续注册!";
	}
	$ips = '';
	return $allowed;
}
add_filter('validate_username', 'validate_reg_ip', 10, 1);
function ip_restrict_errors($errors) {
	global $err_msg;
	if ( isset( $errors->errors['invalid_username'] ) )
	$errors->errors['invalid_username'][0] = __( $err_msg, ' ' );
	return $errors;
}
add_filter('registration_errors', 'ip_restrict_errors');
function update_reg_ip(){
file_put_contents("ip.txt",getIp()."\r\n",FILE_APPEND);
}
add_action('user_register','update_reg_ip');
function getIp(){
	if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
	$ip = getenv("HTTP_CLIENT_IP");
	else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
	$ip = getenv("HTTP_X_FORWARDED_FOR");
	else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
	$ip = getenv("REMOTE_ADDR");
	else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
	$ip = $_SERVER['REMOTE_ADDR'];
	else
	$ip = "unknown";
	return $ip;
}

将上述代码添加到主题的function中即可,如有bug可在评论区反馈!

Download Nulled WordPress Themes
Download WordPress Themes
Download Premium WordPress Themes Free
Download Nulled WordPress Themes
lynda course free download
download mobile firmware
Free Download WordPress Themes
udemy course download free

本文由全百科网分享提供,分享更多精品资源,帮助你我共同成长。

赞(0) 打赏
本站内容均来自网络收集,转载内容不代表本网站的观点及意见,仅供用户参考和借鉴。如对稿件内容及版权问题有疑议,请及时联系全百科官方邮箱: smtsg@foxmail.com全百科网 » 分享简单代码实现wordpress用户注册IP地址限制
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏