Discuz! 官方交流社區(qū)
標(biāo)題: 主題列表最后一頁(yè)顯示出錯(cuò):Unsupported operand types: string + int [打印本頁(yè)]
作者: IsaacZ 時(shí)間: 2025-4-17 20:49
標(biāo)題: 主題列表最后一頁(yè)顯示出錯(cuò):Unsupported operand types: string + int
版塊的最后一頁(yè)出錯(cuò):
https://www.dianbo.org/forum.php?mod=forumdisplay&fid=7&page=14
如果更換顯示順序,在某個(gè)頁(yè)面也會(huì)出錯(cuò):
https://www.dianbo.org/forum.php?mod=forumdisplay&fid=7&filter=reply&orderby=replies&page=7
https://www.dianbo.org/forum.php?mod=forumdisplay&fid=7&filter=author&orderby=dateline&page=9
https://www.dianbo.org/forum.php?mod=forumdisplay&fid=7&filter=reply&orderby=views&page=13
只在這一個(gè)版塊出現(xiàn)這個(gè)情況,要如何排查問(wèn)題?
www.dianbo.org - System Error
Unsupported operand types: string + int
PHP Debug
No. | File | Line | Code |
1 | forum.php | 71 | require() |
2 | source/module/forum/forum_forumdisplay.php | 862 | break() |
(, 下載次數(shù): 0)
作者: 科站網(wǎng) 時(shí)間: 2025-4-18 09:49
你的數(shù)據(jù)有不對(duì)
作者: 天外飄仙 時(shí)間: 2025-4-18 09:58
你用的php8 吧? 切換到php7 應(yīng)該就好了;
如果需要的話 也可以加我 QQ 有償協(xié)助
作者: IsaacZ 時(shí)間: 2025-4-18 10:13
只有一個(gè)版塊出現(xiàn)這個(gè)問(wèn)題,也可能是PHP環(huán)境的問(wèn)題嗎?我安裝個(gè)PHP7.4試試。
作者: 天外飄仙 時(shí)間: 2025-4-18 10:26
Unsupported operand types: string + int;
從報(bào)錯(cuò)類型來(lái)看 就是 不兼容php8;
具體哪里的問(wèn)題 還需要 具體 debug代碼
作者: IsaacZ 時(shí)間: 2025-4-18 10:35
切換成PHP7.4,頁(yè)面可以正常打開(kāi)了?,F(xiàn)在的問(wèn)題就是怎么解決了。
作者: 天外飄仙 時(shí)間: 2025-4-18 10:48
解決了 就好
作者: IsaacZ 時(shí)間: 2025-4-18 11:08
(, 下載次數(shù): 0)
(, 下載次數(shù): 1)
完整修復(fù)后的代碼示例結(jié)合上述方法,以下是修復(fù)后的代碼:
- if (!empty($threadids)) {
- $indexlist = array_flip($threadids);
- // 初始化 $_G['forum_threadlist'] 中的 views 字段
- foreach ($_G['forum_threadlist'] as &$thread) {
- $thread['views'] = isset($thread['views']) ? (int)$thread['views'] : 0;
- }
- unset($thread);
- // 處理附加瀏覽量
- foreach (C::t('forum_threadaddviews')->fetch_all($threadids) as $tidkey => $value) {
- $index = $indexlist[$tidkey];
- // 確保類型安全
- $threadlist[$index]['views'] = (int)$threadlist[$index]['views'] + (int)$value['addviews'];
- $_G['forum_threadlist'][$index]['views'] = (int)$_G['forum_threadlist'][$index]['views'] + (int)$value['addviews'];
- }
- }
復(fù)制代碼PHP8.2下,如上修改后,版面最后一頁(yè)顯示變?yōu)檎!?/font>
作者: IsaacZ 時(shí)間: 2025-4-18 11:28
請(qǐng)看樓上,也不知道這種情況需不需要提交 Issue。
作者: 科站網(wǎng) 時(shí)間: 2025-4-18 11:40
治標(biāo)不治本,本來(lái)這個(gè)字段就應(yīng)該是int,為什么你是string
作者: 天外飄仙 時(shí)間: 2025-4-18 11:45
可以提交一下;
我之前也遇到過(guò) 這種情況……提交Issue 強(qiáng)壯一下代碼也好
作者: IsaacZ 時(shí)間: 2025-4-18 16:54
我也好奇,但一開(kāi)始沒(méi)有辦法確定此列表頁(yè)的具體內(nèi)容?,F(xiàn)在終于能訪問(wèn)了,我觀察了一下,有一個(gè)帖子標(biāo)題具備特異性,它是一個(gè)已經(jīng)移動(dòng)到其他板塊的的帖子,在此版塊又保留了記錄(以“移動(dòng):”開(kāi)頭),而最后發(fā)表時(shí)間又顯示為UNIX初始時(shí)間 1970-1-1 08:00。
在論壇里搜索了一下,一共有4個(gè)主題的 lastpost 時(shí)間成了 0,這是不正常的,正在嘗試修改。
@天外飄仙
作者: 科站網(wǎng) 時(shí)間: 2025-4-18 17:15
你的錯(cuò)誤和lastpost沒(méi)關(guān)系,是views的問(wèn)題,如果數(shù)據(jù)庫(kù)里的views對(duì)的,那么考慮有沒(méi)有插件影響
作者: 天外飄仙 時(shí)間: 2025-4-18 17:21
我查了 代碼, 和 移動(dòng)帖子 無(wú)關(guān);
forum_threadaddviews 這個(gè)表 里面 正好 有 該列表頁(yè) 帖子 緩存數(shù)據(jù)的時(shí)候 才會(huì)觸發(fā);
去 提交吧, 這應(yīng)該是個(gè) 小bug, 不易發(fā)現(xiàn)的小bug;
$threadlist[$index]['views'] 是個(gè) 字符串的 0, 不是int 的 0
只有 訪問(wèn)的 列表的包含的 帖子 正好在 forum_threadaddviews 這個(gè)表 里面有 緩存數(shù)據(jù)的時(shí)候 才會(huì)觸發(fā)
作者: 天外飄仙 時(shí)間: 2025-4-18 17:25
我查代碼 核實(shí)了;
$threadlist[$index]['views'] 是個(gè) 字符串的 0, 不是int 的 0
只有 訪問(wèn)的 列表的包含的 帖子 正好在 forum_threadaddviews 這個(gè)表 里面有 緩存數(shù)據(jù)的時(shí)候 才會(huì)觸發(fā);
這是個(gè)不易發(fā)現(xiàn)的小bug
我原版的X3.5; Discuz! X3.5 Release 20240520 UTF-8
作者: 科站網(wǎng) 時(shí)間: 2025-4-18 17:36
forum_threadaddviews緩存錯(cuò)了?
作者: 天外飄仙 時(shí)間: 2025-4-18 17:53
不是緩存數(shù)據(jù)拿錯(cuò)了;
是 $threadlist[$index]['views'] 錯(cuò)了, $threadlist[$index]['views'] 是個(gè) 字符串的 0, 不是int 的 0
只有 訪問(wèn)的 列表的包含的 帖子 正好在 forum_threadaddviews 這個(gè)表 里面有 緩存數(shù)據(jù)的時(shí)候 才會(huì)觸發(fā);
作者: IsaacZ 時(shí)間: 2025-4-18 23:44
已經(jīng)提交Issue:
PHP 8.2 下 forum_forumdisplay.php 文件出現(xiàn)類型不匹配錯(cuò)誤:Unsupported operand types: string + int · Issue #IC2CA9 · Discuz/DiscuzX - Gitee.com
https://gitee.com/Discuz/DiscuzX/issues/IC2CA9
歡迎光臨 Discuz! 官方交流社區(qū) (http://www.9999xn.com/) |
Powered by Discuz! W1.0 |