久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

12下一頁
返回列表 發帖
查看: 514|回復: 17

[已解決] 主題列表最后一頁顯示出錯:Unsupported operand types: string + int

34

主題

516

回帖

740

積分

自成一派

貢獻
28 點
金幣
32 個
QQ
樓主
發表于 2025-4-17 20:49:49 | 只看樓主 |只看大圖 |倒序瀏覽 |閱讀模式
版塊的最后一頁出錯:
https://www.dianbo.org/forum.php?mod=forumdisplay&fid=7&page=14
如果更換顯示順序,在某個頁面也會出錯:
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
只在這一個版塊出現這個情況,要如何排查問題?

www.dianbo.org - System Error
Unsupported operand types: string + int

PHP Debug
No.FileLineCode
1forum.php71require()
2source/module/forum/forum_forumdisplay.php862break()





1 貢獻

最佳答案

科站網 發表于 2025-4-18 17:15
你的錯誤和lastpost沒關系,是views的問題,如果數據庫里的views對的,那么考慮有沒有插件影響 ...

我查代碼 核實了;
$threadlist[$index]['views'] 是個 字符串的 0, 不是int 的 0
只有 訪問的 列表的包含的 帖子  正好在 forum_threadaddviews  這個表 里面有 緩存數據的時候 才會觸發;

這是個不易發現的小bug

我原版的X3.5;   Discuz! X3.5 Release 20240520 UTF-8
回復

使用道具 舉報

39

主題

2874

回帖

4919

積分

應用開發者

Discuz! 運維

貢獻
181 點
金幣
661 個
QQ
沙發
發表于 2025-4-18 09:49:43 | 只看Ta
你的數據有不對
回復

使用道具 舉報

13

主題

3110

回帖

5287

積分

應用開發者

貢獻
366 點
金幣
158 個
QQ
板凳
發表于 2025-4-18 09:58:12 | 只看Ta
你用的php8 吧? 切換到php7 應該就好了;

如果需要的話 也可以加我 QQ 有償協助
回復

使用道具 舉報

34

主題

516

回帖

740

積分

自成一派

貢獻
28 點
金幣
32 個
QQ
地板
 樓主| 發表于 2025-4-18 10:13:44 | 只看Ta
天外飄仙 發表于 2025-4-18 09:58
你用的php8 吧? 切換到php7 應該就好了;

如果需要的話 也可以加我 QQ 有償協助 ...

只有一個版塊出現這個問題,也可能是PHP環境的問題嗎?我安裝個PHP7.4試試。
回復

使用道具 舉報

13

主題

3110

回帖

5287

積分

應用開發者

貢獻
366 點
金幣
158 個
QQ
5#
發表于 2025-4-18 10:26:18 | 只看Ta
IsaacZ 發表于 2025-4-18 10:13
只有一個版塊出現這個問題,也可能是PHP環境的問題嗎?我安裝個PHP7.4試試。 ...

Unsupported operand types: string + int;

從報錯類型來看 就是 不兼容php8;

具體哪里的問題  還需要 具體 debug代碼
回復

使用道具 舉報

34

主題

516

回帖

740

積分

自成一派

貢獻
28 點
金幣
32 個
QQ
6#
 樓主| 發表于 2025-4-18 10:35:58 | 只看Ta
天外飄仙 發表于 2025-4-18 09:58
你用的php8 吧? 切換到php7 應該就好了;

如果需要的話 也可以加我 QQ 有償協助 ...

切換成PHP7.4,頁面可以正常打開了?,F在的問題就是怎么解決了。
回復

使用道具 舉報

13

主題

3110

回帖

5287

積分

應用開發者

貢獻
366 點
金幣
158 個
QQ
7#
發表于 2025-4-18 10:48:17 | 只看Ta
IsaacZ 發表于 2025-4-18 10:35
切換成PHP7.4,頁面可以正常打開了。現在的問題就是怎么解決了。

解決了 就好
回復

使用道具 舉報

34

主題

516

回帖

740

積分

自成一派

貢獻
28 點
金幣
32 個
QQ
8#
 樓主| 發表于 2025-4-18 11:08:53 | 只看Ta



完整修復后的代碼示例
結合上述方法,以下是修復后的代碼:
  1. if (!empty($threadids)) {
  2.     $indexlist = array_flip($threadids);

  3.     // 初始化 $_G['forum_threadlist'] 中的 views 字段
  4.     foreach ($_G['forum_threadlist'] as &$thread) {
  5.         $thread['views'] = isset($thread['views']) ? (int)$thread['views'] : 0;
  6.     }
  7.     unset($thread);

  8.     // 處理附加瀏覽量
  9.     foreach (C::t('forum_threadaddviews')->fetch_all($threadids) as $tidkey => $value) {
  10.         $index = $indexlist[$tidkey];

  11.         // 確保類型安全
  12.         $threadlist[$index]['views'] = (int)$threadlist[$index]['views'] + (int)$value['addviews'];
  13.         $_G['forum_threadlist'][$index]['views'] = (int)$_G['forum_threadlist'][$index]['views'] + (int)$value['addviews'];
  14.     }
  15. }
復制代碼
PHP8.2下,如上修改后,版面最后一頁顯示變為正常。

回復

使用道具 舉報

34

主題

516

回帖

740

積分

自成一派

貢獻
28 點
金幣
32 個
QQ
9#
 樓主| 發表于 2025-4-18 11:28:06 | 只看Ta

請看樓上,也不知道這種情況需不需要提交 Issue。
回復

使用道具 舉報

39

主題

2874

回帖

4919

積分

應用開發者

Discuz! 運維

貢獻
181 點
金幣
661 個
QQ
10#
發表于 2025-4-18 11:40:55 | 只看Ta
治標不治本,本來這個字段就應該是int,為什么你是string
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

  • 關注公眾號
  • 有償服務微信
  • 有償服務QQ

手機版|小黑屋|Discuz! 官方交流社區 ( 皖ICP備16010102號 |皖公網安備34010302002376號 )|網站地圖|star

GMT+8, 2025-7-5 18:08 , Processed in 0.061057 second(s), 13 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

關燈 在本版發帖
有償服務QQ
有償服務微信
返回頂部
快速回復 返回頂部 返回列表