發這篇文章讓我考慮了好久...因為我還是剛接觸不久的新手
因為這是以前就一直在解決的問題,之前PHPBB2011因為被駭客改過首頁所以就停擺了好久,最近終於把它給修復並升級成功...
先說明我的免空資訊
●免費空間連結: http://why3s.us
●您的上網方式:學術網
●免空上的程式:Apache 版本 1.3.33 (Unix) + MySQL 版本 4.0.27-standard + PHP 版本 4.3.11 + phpMyAdmin - 2.8.0.2
●您的 phpBB2 版本:phpBB (2.0.11)(BIG5) --> phpBB (2.0.22)(UTF-8)
升級步驟過程及問題敘述:
一開始保留原來的 phpBB (2.0.11)(BIG5) 不動,進入 phpMyAdmin 備份下載匯出所有的資料表,(一開始很懶,想說一次整個備份,然後還原,得到的就是失敗的結果),乖乖的一個個的備份下載,總共有29個資料表,(可是 [PHPBB 2.0.22] 有30個,多的那一個是[phpbb_sessions_keys]這裡我就不理它了),然後將下載下來的資料表利用 ConvertZ 將資料表全部轉成繁體 UTF-8 (這過程之中還有去除衝碼字的問題,反覆轉了4-5次,第一次轉繁->簡->繁,修正 [許\\\公\\\蓋\\\] 變成 [許公蓋],第二次是修正 [許r\n公r\n蓋r\n] 變成 [許\r\n公\r\n蓋\r\n]),完成之後,就是使用竹貓下載的 [PHPBB 2.0.22(內含中文語系以及中文按鈕,適合全新安裝使用,本版本採 UTF-8 編碼)],將它上傳到免空進行全新安裝,安裝後資料庫就是UTF-8。
這時我開始將全部轉好的資料表全部匯入(我腦殘才這樣做),結果就掛了(匯入的過程其實還有一些出現了語法錯誤,這時候我依照他顯示的錯誤部分,利用 EmEditor 開啟轉好的SQL檔搜尋到錯誤的部份修正,直到它完整無誤的匯入為止。另外我還發現 [phpbb_users] 這個資料表從 2.0.11->2.0.22 多了兩筆結構資料,然後我就手動慢慢的增加了每個會員的這兩筆數據...),後來仔細看了一下原來的 phpBB (2.0.11)(BIG5) 資料庫的資料表,發現有些資料表是沒有紀錄資料的,就省略那些沒有記錄資料的都不匯入,然後就再重新匯入一次,匯入完之後就到論壇去,隨便瀏覽一下及發文,幾乎沒什麼問題了。
只是有個小問題就是會員名稱的問題,好像更新完之後,會員的名稱長度上限被縮短了,例如有一個會員的名稱在 phpBB (2.0.11)(BIG5) 是這樣
一二三四五六七八九
原來是正常可以顯示的,可是更新完 phpBB (2.0.22)(UTF-8) 之後卻變成
一二三四五六七八伯a>

然後我嘗試修改資料庫,資料庫裡面變成這樣

然後不管它,繼續改成
一二三四五六七八
這樣是OK的,然後我在改成
一二三四-五六七八
這樣也是OK的,可是如果在改成這樣
一二三四--五六七八
資料庫裡面的內容就會變成這樣

然後就顯示成
一二三四--五六七兼/a>

以上結論就是更新完之後,會員名稱只能用8個中文字+1個英文數字或是25個英文數字
這樣算起來,一個中文字就佔了三個字元,更新完之後就縮短了字元的上限了...怎麼會這樣...
PS.以下*記號的資料表是我將 phpBB (2.0.11)(BIG5) --> phpBB (2.0.22)(UTF-8) 有匯入的部份
代碼: 選擇全部
phpbb_auth_access *
phpbb_banlist
phpbb_categories *
phpbb_config
phpbb_confirm
phpbb_disallow
phpbb_forums *
phpbb_forum_prune
phpbb_groups *
phpbb_posts *
phpbb_posts_text *
phpbb_privmsgs *
phpbb_privmsgs_text *
phpbb_ranks
phpbb_search_results
phpbb_search_wordlist
phpbb_search_wordmatch
phpbb_sessions
phpbb_smilies
phpbb_themes
phpbb_themes_name
phpbb_topics *
phpbb_topics_watch *
phpbb_users *
phpbb_user_group *
phpbb_vote_desc *
phpbb_vote_results *
phpbb_vote_voters *
phpbb_words 下面是 phpBB (2.0.22) 的資料表
代碼: 選擇全部
phpbb_auth_access
phpbb_banlist
phpbb_categories
phpbb_config
phpbb_confirm
phpbb_disallow
phpbb_forums
phpbb_forum_prune
phpbb_groups
phpbb_posts
phpbb_posts_text
phpbb_privmsgs
phpbb_privmsgs_text
phpbb_ranks
phpbb_search_results
phpbb_search_wordlist
phpbb_search_wordmatch
phpbb_sessions
phpbb_sessions_keys
phpbb_smilies
phpbb_themes
phpbb_themes_name
phpbb_topics
phpbb_topics_watch
phpbb_users
phpbb_user_group
phpbb_vote_desc
phpbb_vote_results
phpbb_vote_voters
phpbb_words 對我來說升級版本與資料庫最大的瓶頸應該就是衝碼字的問題,比較麻煩的就是 [phpbb_posts_text] 這個資料表了,衝碼字容易導致匯入資料庫產生語法錯誤,至於編碼的問題倒是還好解決,ConvertZ 與 EmEditor 真是非常好用的工具。
另外衝碼字我覺得目前最多有三個反斜線,如果只有修改兩個反斜線,可能還會存在衝碼字。還有我發現利用 ConvertZ 繁轉簡轉繁之後,原本的[珮]字會被改成[佩],前者是衝碼字,修改之後可能會有個問題,就是遇到[佩r\n],這時我又得自己在加入修正。


