0

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

xinyu
2024-12-19 158

如果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
}
PHP
本站申明 1、本论坛一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请投诉举报
2、本论坛的资源部分来源于网络,如有侵权,请 私信联系站长进行删除处理。
3、不得发布和链接任何有关政治, 色情, 宗教, 迷信.低俗、变态、血腥、暴力以及危害国家安全.诋毁政府形象等违法言论和信息的帖子.
4、本帖图片及内容纯属发布用户个人意见,与本站无关!
4,本帖如为原创资源/教程分享帖,则本站与发布用户共同享有内容版权!
6,本站管理有权在不经发布者同意的情况下,根据版规及相关法律法规删除/修改本帖!
7,如无特别说明,任何个人或者组织不得转载本帖内容!任何个人或团体不得将本站资源用于非法用途!
8,未尽事宜最终解释权归本站(小白网)所有!

最新回复 (0)

    暂无评论

    • Xiuno论坛
      2
返回
来发布一条评论吧~点击关闭评论框