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用户组过期问题解决方法相关推荐

  1. Windows10安装 ABAQUS 6.10的安装及证书过期问题解决

    Windows10安装 ABAQUS 6.10的安装及证书过期问题解决 (1)环境变量添加 右击桌面"此电脑",打开属性--高级系统设置--高级--环境变量, 在系统变量下添加 N ...

  2. Discuz插件 微信购买会员用户组V2.180418商业版

    介绍 Discuz插件 微信购买会员用户组V2.180418商业版,支持支付宝,微信付款方式购买功能等 功能描述 尽管网络时代已经经过无数次的变革,但是收费会员制至今仍然是一个网站重要的盈利点,上至 ...

  3. Oracle 常见错误总结(如:ORA-XXXXX)及问题解决方法

    转: Oracle 常见错误总结(如:ORA-XXXXX)及问题解决方法 ORA-00001: 违反唯一约束条件 ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 O ...

  4. php server 不支持,SQL server不支持utf8 php却用utf8的矛盾问题解决方法

    SQL server不支持utf8 php却用utf8的矛盾问题解决方法,数据,要使,声明,页面,字段 SQL server不支持utf8 php却用utf8的矛盾问题解决方法 易采站长站,站长之家为 ...

  5. 树莓派可以搜索到wifi但是连接不上的问题解决方法

    树莓派可以搜索到wifi但是连接不上的问题解决方法 1.环境和遇到的问题 2.可能的问题与可性的解决方法 3. 树莓派的配置问题的解决 4.可能会有其他的问题,大家加油一定可以解决 1.环境和遇到的问 ...

  6. Mathtype卸载问题,使用期限、还有与word关联问题,The MathType DLL cannot be found.问题解决方法、查找office安装路径

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 目录 文章目录 Mathtype卸载问题和word关联.少 MathType DLL等问题.查找office安装路径. ...

  7. linux php 执行命令权限不够,PHP调用Linux命令权限不足问题解决方法

    PHP调用Linux命令权限不足问题解决方法 业务背景:  yourcmd为我的linux程序,它对权限要求非常严格,当用php去执行yourcmd程序 系统:CentOS 6.3 apache是ph ...

  8. Oracle不能在本地计算机启动,Windows 不能在本地计算机启动 OracleDBConsoleorcl的问题解决方法...

    解决步骤如下: 1.开始->运行cmd 2.执行 emctl start dbconsole 输入:C:\Documents and Settings\xcl>emctl start db ...

  9. IDEA的CPU占用率高问题解决方法

    前言:这段时间发现 IDEA 的 CPU 占用率猛涨,时不时就飙升到百分之7.80,使得敲代码的体验感十分不佳,在经过一番查找之后终于解决了问题,在此记录一下 IDEA的CPU占用率高问题解决方法 问 ...

最新文章

  1. Spring Cloud Alibaba 综合应用:Seata 分布式事务实战教程
  2. seafile服务器版能安装在虚拟机上,seafile安装教程linux
  3. 【Linux 操作系统】 Secure CRT 终端配置 -- 配置语法高亮 光标 和 字体
  4. leetcode算法题--Minimum Depth of Binary Tree
  5. BlockChain:《区块链世界简明生存指南(一块听听)》2017-06-06 李笑来—听课笔记分享(2)
  6. [备忘] Automatically reset Windows Update components
  7. 6大设计模式(4):接口隔离原则
  8. [css] 假如设计稿使用了非标准的字体,你该如何去实现它?
  9. 判断数正负(信息学奥赛一本通-T1039)
  10. 一键清除 打印机内无法清除作业
  11. MySQL主从延时这么长,怎么优化?
  12. 关于python中自己写的模块之前相互调用函数
  13. 【前端】【cornerstionjs】Cornerstone加载base64表示的jpg图像
  14. vs关于“当前不会命中断点 还没有为该文档加载任何符号”的解决方法
  15. 在 Panorama 页面中添加 ApplicationBar
  16. RN:Android 开发记录
  17. Python项目实战-----科比数据集分析
  18. 【系】微信小程序云开发实战坚果商城-云开发之分类数据实现
  19. 51单片机mq3酒精浓度检测mq3酒驾醉驾检测酒精报警ADC0832采集
  20. 3dsmax渲染AVI格式动画的画面不清晰

热门文章

  1. 的tree用法_linux命令tree用法
  2. java gc信息_JVM之GC回收信息详解
  3. t184卡西欧计算机玩游戏,中学回忆——卡西欧 FX-82ES 科学计算器 晒物
  4. pat乙级相当于什么水平_林书豪在CBA相当于什么水平的外援?
  5. php中调行高代码_单元格行高怎么设置
  6. python自定义函数详解_python基础教程之自定义函数介绍
  7. php正则表达式实例详解,正则表达式实例解析
  8. php resultset用法,PHP PDOStatement::nextRowset讲解
  9. c语言获取当前日期和时间
  10. Akka的Hello World(三)Actor失败处理