日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

discuz 的 group.php,DiscuzX用户组过期问题解决方法

發布時間:2025/3/19 php 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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用户组过期问题解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。