你的論壇訪客無法進入\r
所以, 我推測是否為標題長度限制問題
標題過長問題說明
這個問題不光是2.08a... 從以前有雙字元語言版本的phpbb時候就開始有了...
當記錄中文字的時候需要用兩個位元(bytes), 英文則只用1個, 而資料庫安裝的時候(default)用的主題長度最大數目是60 bytes... 等於三十個中文字.
如果最大主題長度縮小為30的話就不會有這個問題, 就算打入30個中文字都可以正常的顯示出來, 因為剛好等於30x2 = 60 bytes
但是如果用任何大於30的長度的話, 純英文字(數字, 符號都算)的主題還是沒問題, 但是如果裡面有混中文或是中文跟英文字, 加起來超過長度限制的話就可能不行了...
這個就要看你的 posting_body.tpl 裡面主題長度限制是多少(要看phpbb在那裡把你的主題過長的地方切掉...), 而如果剛好被切的地方是中文的話只會有一半剩下來....
而大部份一半的中文顯示出來都是奇怪的碼, 當然phpbb很忠實的顯示出來, 所以看到的都是 /a>, 因為本來 "...主題名稱聯結...</a>" 前面主題顯示最後那個半個中文字的時候, 亂碼把那個 "<"符號吃掉了. 所以對HTML來說不算是完整的文法, 所以不能進入那個連接...
phpbb資料庫存主題的長度是char(60),但是 posting_body.tpl 是maxlength=60,乍看之下好像沒錯,但是char(60)是指60 byte,但是maxlength卻是60個字,如果是中文的話,全打滿就是120 byte了,所以會讀不到而產生空白畫面。
方法一
開啟 ./templates/現用風格名稱/posting_body.tpl
代碼: 選擇全部
尋找\r
maxlength="60"
修改為
maxlength="30"
方法二
資料庫的 post_subect 跟 topic_title 的大小加大為主題長度限制(此例為60)的一倍就好了 (char(120)) 不會影響到其它東西.
代碼: 選擇全部
使用SQL語法
ALTER TABLE phpbb_topics MODIFY topic_title char[120] NOT NULL;
ALTER TABLE phpbb_posts_text MODIFY post_subject varchar[120] NOT NULL;