當觀看主頁時, 會看見 "頭檔及簽名檔" 一版最後張貼為主題 1116 "咦? 某版友係度玩車頭燈wo~", 但按入 "頭檔及簽名檔" 一版後卻看不見.
此主題仍然存在於資料庫中, 而且能被打開: http://www.freepgs.com/kp3011/phpBB2/vi ... php?t=1116
能否有人幫助小弟解決這個問題? 先謝.
版主: 版主管理群
代碼: 選擇全部
尋找\r
maxlength="60"
修改為
maxlength="30"
代碼: 選擇全部
使用SQL語法
ALTER TABLE phpbb_topics MODIFY topic_title char[120] NOT NULL;
ALTER TABLE phpbb_posts_text MODIFY post_subject varchar[120] NOT NULL;
終於解決我的問題,謝謝!wu2017 寫:你的論壇訪客無法進入\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;