discuz 的 group.php,DiscuzX用户组过期问题解决方法
Discuz自从出现以来就是一个Bug坑,各种bug,虽然也有解决了的,但是还是有很多BUG官方都没有解决。就像这个用户组过期问题一样,过期后就不会自己切换回去。官方的态度就是,我们没有发现这个BUG啊。。废话,你们都不启用这些东西的,怎么会知道BUG的存在!!!
言归正传,现在我们就来解决这用户组过期不能自动切换的问题。
就拿DiscuzX2.5作为例子,在N多人去官方论坛投诉后,官方最终加上了一段代码。但是随后都反映说这用户组过期问题还是存在,然后这个问题就这样存在着。。
在仔细看完了discuz论坛的整个代码后发现,官方给出的代码大部分是没有错误的,但是有一个致命的问题写错了,导致不能正常过期。
下面我们就来修改这个bug。首先我们要找到打开source\include\spacecp\spacecp_usergroup.php这个文件,找到299行左右,
foreach(explode("\t", $_G['forum_extgroupids']) as $extgroupid) {
修改为
foreach(explode("\t", $_G['member']['extgroupids']) as $extgroupid) {
修改完后,以后的用户组过期就会得到解决。
如果你以前就有很多的过期用户想清理掉怎么办呢?这个的要修改source\class\discuz\discuz_application.php这个文件了。
原理就是在用户今日论坛的时候自动检测一下是否过期,如果过期就自动切换到原来的用户组上去。
打开discuz_application.php文件,大概在433行左右,找到
if($user && $user['groupexpiry'] > 0 && $user['groupexpiry'] < TIMESTAMP && (getgpc('mod') != 'spacecp' || CURSCRIPT != 'home')) {
在他上面添加内容并重写成一下的代码
$groupterms = unserialize(DB::result_first("SELECT groupterms FROM ".DB::table('common_member_field_forum')." WHERE uid='".getglobal('uid', 'member')."'"));
$termsarray = array();
if(!empty($groupterms['ext']) && is_array($groupterms['ext'])) {
$termsarray = $groupterms['ext'];
}
if(!empty($groupterms['main']['time']) && (empty($termsarray[$_G['groupid']]) || $termsarray[$_G['groupid']] > $groupterm['main']['time'])) {
$termsarray[$_G['groupid']] = $groupterms['main']['time'];
}
foreach($termsarray as $expgroupid => $expiry) {
if($expiry <= TIMESTAMP) {
$user_expiry = 1;
}
}
if($user && (( $user['groupexpiry'] > 0 && $user['groupexpiry'] < TIMESTAMP) || $user_expiry == 1) && (getgpc('mod') != 'spacecp' || CURSCRIPT != 'home')) {
dheader('location: home.php?mod=spacecp&ac=usergroup&do=expiry');
}
保存文件,修改完成。
每当用户刷新页面的时候,自动检测是否到达过期时间,如果到达的话,就自动切换当前用户组。
标签:
discuz 的 group.php,DiscuzX用户组过期问题解决方法相关推荐
- Windows10安装 ABAQUS 6.10的安装及证书过期问题解决
Windows10安装 ABAQUS 6.10的安装及证书过期问题解决 (1)环境变量添加 右击桌面"此电脑",打开属性--高级系统设置--高级--环境变量, 在系统变量下添加 N ...
- Discuz插件 微信购买会员用户组V2.180418商业版
介绍 Discuz插件 微信购买会员用户组V2.180418商业版,支持支付宝,微信付款方式购买功能等 功能描述 尽管网络时代已经经过无数次的变革,但是收费会员制至今仍然是一个网站重要的盈利点,上至 ...
- Oracle 常见错误总结(如:ORA-XXXXX)及问题解决方法
转: Oracle 常见错误总结(如:ORA-XXXXX)及问题解决方法 ORA-00001: 违反唯一约束条件 ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 O ...
- php server 不支持,SQL server不支持utf8 php却用utf8的矛盾问题解决方法
SQL server不支持utf8 php却用utf8的矛盾问题解决方法,数据,要使,声明,页面,字段 SQL server不支持utf8 php却用utf8的矛盾问题解决方法 易采站长站,站长之家为 ...
- 树莓派可以搜索到wifi但是连接不上的问题解决方法
树莓派可以搜索到wifi但是连接不上的问题解决方法 1.环境和遇到的问题 2.可能的问题与可性的解决方法 3. 树莓派的配置问题的解决 4.可能会有其他的问题,大家加油一定可以解决 1.环境和遇到的问 ...
- Mathtype卸载问题,使用期限、还有与word关联问题,The MathType DLL cannot be found.问题解决方法、查找office安装路径
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 目录 文章目录 Mathtype卸载问题和word关联.少 MathType DLL等问题.查找office安装路径. ...
- linux php 执行命令权限不够,PHP调用Linux命令权限不足问题解决方法
PHP调用Linux命令权限不足问题解决方法 业务背景: yourcmd为我的linux程序,它对权限要求非常严格,当用php去执行yourcmd程序 系统:CentOS 6.3 apache是ph ...
- Oracle不能在本地计算机启动,Windows 不能在本地计算机启动 OracleDBConsoleorcl的问题解决方法...
解决步骤如下: 1.开始->运行cmd 2.执行 emctl start dbconsole 输入:C:\Documents and Settings\xcl>emctl start db ...
- IDEA的CPU占用率高问题解决方法
前言:这段时间发现 IDEA 的 CPU 占用率猛涨,时不时就飙升到百分之7.80,使得敲代码的体验感十分不佳,在经过一番查找之后终于解决了问题,在此记录一下 IDEA的CPU占用率高问题解决方法 问 ...
最新文章
- Spring Cloud Alibaba 综合应用:Seata 分布式事务实战教程
- seafile服务器版能安装在虚拟机上,seafile安装教程linux
- 【Linux 操作系统】 Secure CRT 终端配置 -- 配置语法高亮 光标 和 字体
- leetcode算法题--Minimum Depth of Binary Tree
- BlockChain:《区块链世界简明生存指南(一块听听)》2017-06-06 李笑来—听课笔记分享(2)
- [备忘] Automatically reset Windows Update components
- 6大设计模式(4):接口隔离原则
- [css] 假如设计稿使用了非标准的字体,你该如何去实现它?
- 判断数正负(信息学奥赛一本通-T1039)
- 一键清除 打印机内无法清除作业
- MySQL主从延时这么长,怎么优化?
- 关于python中自己写的模块之前相互调用函数
- 【前端】【cornerstionjs】Cornerstone加载base64表示的jpg图像
- vs关于“当前不会命中断点 还没有为该文档加载任何符号”的解决方法
- 在 Panorama 页面中添加 ApplicationBar
- RN:Android 开发记录
- Python项目实战-----科比数据集分析
- 【系】微信小程序云开发实战坚果商城-云开发之分类数据实现
- 51单片机mq3酒精浓度检测mq3酒驾醉驾检测酒精报警ADC0832采集
- 3dsmax渲染AVI格式动画的画面不清晰
热门文章
- 的tree用法_linux命令tree用法
- java gc信息_JVM之GC回收信息详解
- t184卡西欧计算机玩游戏,中学回忆——卡西欧 FX-82ES 科学计算器 晒物
- pat乙级相当于什么水平_林书豪在CBA相当于什么水平的外援?
- php中调行高代码_单元格行高怎么设置
- python自定义函数详解_python基础教程之自定义函数介绍
- php正则表达式实例详解,正则表达式实例解析
- php resultset用法,PHP PDOStatement::nextRowset讲解
- c语言获取当前日期和时间
- Akka的Hello World(三)Actor失败处理