香蕉成人伊视频在线观看|学生小视频国产区|yy女主播啪啪啪视频|麻豆传播媒体APP大全免费版官网|瑜伽牲交AV|国产欧美日韩在线天堂区|白浆精品国产91

Discuz! 官方交流社區

標題: Discuz! X 升級Discuz! X5.0 問題 [打印本頁]

作者: 龍龍    時間: 2026-4-5 15:21
標題: Discuz! X 升級Discuz! X5.0 問題

作者: 天外飄仙    時間: 2026-4-5 16:18
刷新 試試呢;  進后臺, 數據庫校驗 試試, 看 表結構 是否正常,

如果表結構正常 就說明是升級成功了
作者: 龍龍    時間: 2026-4-5 17:17
數據庫校驗 正常,前臺顯示錯誤
作者: 鴻茂傳媒    時間: 2026-4-5 19:51
關閉插件,切換默認是否會出現
作者: 龍龍    時間: 2026-4-5 22:09
鴻茂傳媒 發表于 2026-4-5 19:51
關閉插件,切換默認是否會出現

所有插件都是關閉了的
作者: monkeye    時間: 2026-4-5 22:39
龍龍 發表于 2026-4-5 17:17
數據庫校驗 正常,前臺顯示錯誤

后臺域名相關的配置重新配一下。;
作者: nas1    時間: 2026-4-6 15:11
本地反復測試過多次,每次都出現這樣的問題,數據庫大概3G多,紅色后寶塔面板顯示數據有寫入,寫入幾分鐘后就沒數據寫入了。得不斷多次刷新才會繼續下去,但是這樣刷新繼續下次到升級成功數據出來都是錯誤的。
作者: 科站網    時間: 2026-4-7 09:45
同樣適用http://m.yu-jie.cn/thread-27803-1-1.html
作者: 龍龍    時間: 2026-4-8 01:27
\source\function\cache\cache_setting.php

### 修復 1:第 77-99 行(profilegroup 配置處理)
修復前:

```
}?elseif($setting['skey']?==?
'profilegroup')?{
????$profile_settings?=?
????table_common_member_profile_sett
????ing::t()->fetch_all_by_available
????(1);
????foreach($setting['svalue']?as?
????$key?=>?$val)?{
????????$temp?=?[];
????????if(!empty($val['field'])?&&?
????????is_array($val['field']))?{
????????????foreach
????????????($profile_settings?as?
????????????$pval)?{
????????????????if(in_array($pval
????????????????['fieldid'],?$val
????????????????['field']))?{
????????????????????$temp[$pval
????????????????????['fieldid']]?=?
????????????????????$pval
????????????????????['fieldid'];
????????????????}
????????????}
????????????foreach($val['field']?
????????????as?$fieldid)?{
????????????????if(!in_array
????????????????($fieldid,?$temp))?{
????????????????????$temp[$fieldid]?
????????????????????=?$fieldid;
????????????????}
????????????}
????????}
????????$setting['svalue'][$key]
????????['field']?=?$temp;
????}
????table_common_setting::t()
????->update_setting
????('profilegroup',?$setting
????['svalue']);
}
```
修復后:

```
}?elseif($setting['skey']?==?
'profilegroup')?{
????if(!is_array($setting
????['svalue']))?{
????????$setting['svalue']?=?[];
????}
????$profile_settings?=?
????table_common_member_profile_sett
????ing::t()->fetch_all_by_available
????(1);
????foreach($setting['svalue']?as?
????$key?=>?$val)?{
????????$temp?=?[];
????????if(!empty($val['field'])?&&?
????????is_array($val['field']))?{
????????????foreach
????????????($profile_settings?as?
????????????$pval)?{
????????????????if(in_array($pval
????????????????['fieldid'],?$val
????????????????['field']))?{
????????????????????$temp[$pval
????????????????????['fieldid']]?=?
????????????????????$pval
????????????????????['fieldid'];
????????????????}
????????????}
????????????foreach($val['field']?
????????????as?$fieldid)?{
????????????????if(!in_array
????????????????($fieldid,?$temp))?{
????????????????????$temp[$fieldid]?
????????????????????=?$fieldid;
????????????????}
????????????}
????????}
????????$setting['svalue'][$key]
????????['field']?=?$temp;
????}
????table_common_setting::t()
????->update_setting
????('profilegroup',?$setting
????['svalue']);
}
```
### 修復 2:第 865-878 行(plugins 配置處理)
修復前:

```
if(!$method)?{
????$_G['setting']['plugins']
????['available']?=?$data['plugins']
????['available'];
????if($adminmenu[0])?{
????????$adminmenu[0]?=?array_merge(
????????????[['name'?=>?
????????????'plugins_system',?'sub'?
????????????=>?1]],
????????????$adminmenu[0],
????????????[['name'?=>?
????????????'plugins_system',?'sub'?
????????????=>?2]]
????????);
????}
????savecache('adminmenu',?
????array_merge((array)$adminmenu
????[0],?(array)$adminmenu[1]));
}
```
修復后:

```
if(!$method)?{
????if(!isset($_G['setting']
????['plugins'])?||?!is_array($_G
????['setting']['plugins']))?{
????????$_G['setting']['plugins']?=?
????????[];
????}
????$_G['setting']['plugins']
????['available']?=?$data['plugins']
????['available'];
????if($adminmenu[0])?{
????????$adminmenu[0]?=?array_merge(
????????????[['name'?=>?
????????????'plugins_system',?'sub'?
????????????=>?1]],
????????????$adminmenu[0],
????????????[['name'?=>?
????????????'plugins_system',?'sub'?
????????????=>?2]]
????????);
????}
????savecache('adminmenu',?
????array_merge((array)$adminmenu
????[0],?(array)$adminmenu[1]));
}
```
### 修復原因
兩處修復都是因為 PHP 8.0+ 對類型檢查更嚴格,當變量是字符串而非數組時,訪問數組偏移量會報錯 "Cannot access offset of type string on string"。通過添加 is_array() 檢查,確保變量是數組類型后再進行操作。

終于搞定升級了




歡迎光臨 Discuz! 官方交流社區 (http://m.yu-jie.cn/) Powered by Discuz! X5.0