0 0 0

xiunobbs设置仅会员可读写时验证码不显示的解决办法

始皇帝 秦始黄
1月前 52

如果xiunobbs设置为仅会员可读写,那么所有页面都会先验证是否登录。

但是有些页面是非会员也需要访问的,比如登录注册。原程序对这些页面有作例外处理。但是如果你有用验证码插件,会发现验证码不出来。就是因为这里没有对验证码作例外处理。除此之外,我还发现重置密码的邮箱验证也不能使用。

下面我对/model/misc.func.php文件进行了修改,增加了验证码(vcode)和联系我们页面,以及用户send_code页面到例外清单中。这样在仅会员可读写的状态下或者其他封闭状态下,验证码功能和发邮件重置密码功能就可以使用了。

你如果遇到类似的问题,也可以用这个方法解决。

// 检测站点的运行级别
function check_runlevel() {
	global $conf, $method, $gid;
	// hook model_check_runlevel_start.php
	
	if($gid == 1) return;
	$param0 = param(0);
	$param1 = param(1);
	if($param0 == 'vcode') return;
	if($param0 == 'contact_us') return;
	if($param0 == 'user' && in_array($param1, array('login', 'create', 'logout', 'sendinitpw', 'resetpw', 'resetpw_sendcode', 'resetpw_complete','send_code', 'synlogin'))) return;
	switch ($conf['runlevel']) {
		case 0: message(-1, $conf['runlevel_reason']); break;
		case 1: message(-1, lang('runlevel_reson_1')); break;
		case 2: ($gid == 0 || $method != 'GET') AND message(-1, lang('runlevel_reson_2')); break;
		case 3: $gid == 0 AND http_location(url('user-login')); break;
		case 4: $method != 'GET' AND message(-1, lang('runlevel_reson_4')); break;
		//case 5: break;
	}
	// hook model_check_runlevel_end.php
}
最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!