●架設主機作業系統:Linux
●您的上網方式:ADSL
●您的 phpBB2 版本:phpBB (2.0.22 UTF-8)。
●錯誤狀態:會員改名後,因取名字過長,導亂名字變成亂碼
這兩天替遊戲公會架設一個網站,因此id以遊戲為主,
遊戲的id最多六個中文字,phpbb預設25字元足敷使用。
但是今天發現某會員註冊之後,將id改超過25字元,導致id後面出現亂碼,
原本我以為可以仿照主題限制字數方式來更改id,
卻發現原本註冊的欄位本就限制25字元了。
遊戲角色id可能會有改變,所以我開放會員可以自行更改名字,
若我要限制會員更改名字時,一樣有25字元的限制,應該改那個檔案呢?
感謝各位大大的回覆。
[問題]會員改名後,因長度過長,導致亂碼問題(已解決,感謝心靈大大)
版主: 版主管理群
版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
-
nightwinded
- 星球普通子民

- 文章: 5
- 註冊時間: 2006-03-06 18:14
[問題]會員改名後,因長度過長,導致亂碼問題(已解決,感謝心靈大大)
最後由 nightwinded 於 2007-03-26 09:55 編輯,總共編輯了 1 次。
Re: [問題]會員改名後,因長度過長,導致亂碼問題
實在看不懂您的問題是甚麼?nightwinded 寫:●架設主機作業系統:Linux
●您的上網方式:ADSL
●您的 phpBB2 版本:phpBB (2.0.22 UTF-8)。
●錯誤狀態:會員改名後,因取名字過長,導亂名字變成亂碼
這兩天替遊戲公會架設一個網站,因此id以遊戲為主,
遊戲的id最多六個中文字,phpbb預設25字元足敷使用。
但是今天發現某會員註冊之後,將id改超過25字元,導致id後面出現亂碼,
原本我以為可以仿照主題限制字數方式來更改id,
卻發現原本註冊的欄位本就限制25字元了。
遊戲角色id可能會有改變,所以我開放會員可以自行更改名字,
若我要限制會員更改名字時,一樣有25字元的限制,應該改那個檔案呢?
感謝各位大大的回覆。
既然您知道 '原本註冊的欄位本就限制25字元了'
那麼怎麼會有這個問題呢?
'若我要限制會員更改名字時,一樣有25字元的限制,應該改那個檔案呢?'
-
hollowaysxp
- 竹貓忠實會員

- 文章: 535
- 註冊時間: 2004-06-01 22:39
- 來自: 仙境傳說回憶最美~台灣桃園
- 聯繫:
資料庫表phpbb_users
找到
欄位username
型態varchar(25)
所以使用者名稱限制25個字元是在這裡限制。
才會產生亂碼。
因為中文為2個字元。
25 / 2= 12 ........ 1
所以最後一個中文字是用1個字元再裝,所以產生亂碼。
這一個方法就是修改表格內的字元最大長度。
至於改了之後會有問題存在嗎?我也不知道
找到
欄位username
型態varchar(25)
所以使用者名稱限制25個字元是在這裡限制。
才會產生亂碼。
因為中文為2個字元。
25 / 2= 12 ........ 1
所以最後一個中文字是用1個字元再裝,所以產生亂碼。
這一個方法就是修改表格內的字元最大長度。
至於改了之後會有問題存在嗎?我也不知道
●架設主機作業系統:FreeBSD 6.2-RELEASE (自行架設)
●我的上網方式:FTTB+VDSL HINET 10M/2M
●我安裝的程式:Apache 2.0.59+ PHP Version 4.4.4 + MySql 4.1.21+phpMyadmin 2.9.1.1
●我的 phpBB3 版本:phpBB3.0.1
●我的 phpBB3 連結網址 http://nitcs.itrello.com/forum/
NITCS歡迎你
NITCS論壇
●我的上網方式:FTTB+VDSL HINET 10M/2M
●我安裝的程式:Apache 2.0.59+ PHP Version 4.4.4 + MySql 4.1.21+phpMyadmin 2.9.1.1
●我的 phpBB3 版本:phpBB3.0.1
●我的 phpBB3 連結網址 http://nitcs.itrello.com/forum/
NITCS歡迎你
NITCS論壇
-
nightwinded
- 星球普通子民

- 文章: 5
- 註冊時間: 2006-03-06 18:14
Re: [問題]會員改名後,因長度過長,導致亂碼問題
抱歉,我也覺得寫的有點亂心靈捕手 寫:實在看不懂您的問題是甚麼?
既然您知道 '原本註冊的欄位本就限制25字元了'
那麼怎麼會有這個問題呢?![]()
'若我要限制會員更改名字時,一樣有25字元的限制,應該改那個檔案呢?'
首先是會員的id產生亂碼的問題,
因為只有後半部有亂碼,所以確定是id過長。
解決方式有二,一是增加資料庫欄位長度(sql部分)、一是限制該輸入欄位(input form部分),
但基於會員id理應不會超過12位元,因此我不打算更改資料庫欄位,
而傾向限制欄位輸入的字元限制。
我的問題來了,當我翻註冊的程式頁面時,的確有25位元的限制,
因此可確定註冊時,註冊者是無法輸入超過25位元的id,
事實上這位玩家也是事後自行更改id才會導致亂碼發生。
我想知道的是,在個人資料修改的地方,主要是由那個程式控制id的資料庫欄位部分,
我想要針對該檔案設定和註冊頁面一樣,有25字元的限制。
麻煩心靈大大了,感謝!
-
nightwinded
- 星球普通子民

- 文章: 5
- 註冊時間: 2006-03-06 18:14
-
nightwinded
- 星球普通子民

- 文章: 5
- 註冊時間: 2006-03-06 18:14
補充:
前兩天因為某些會員id無法註冊(例如:惠),因此我採用心靈大大的改法:
http://phpbb-tw.net/phpbb/viewtopic.php?p=226438#226438
如此做不曉得是否為亂碼問題發生的原因呢?
前兩天因為某些會員id無法註冊(例如:惠),因此我採用心靈大大的改法:
http://phpbb-tw.net/phpbb/viewtopic.php?p=226438#226438
如此做不曉得是否為亂碼問題發生的原因呢?
Re: [問題]會員改名後,因長度過長,導致亂碼問題
基本上, 會員註冊時填寫會員名稱, 和註冊後修改會員名稱, 是使用同一個欄位.nightwinded 寫:抱歉,我也覺得寫的有點亂心靈捕手 寫:實在看不懂您的問題是甚麼?
既然您知道 '原本註冊的欄位本就限制25字元了'
那麼怎麼會有這個問題呢?![]()
'若我要限制會員更改名字時,一樣有25字元的限制,應該改那個檔案呢?'![]()
首先是會員的id產生亂碼的問題,
因為只有後半部有亂碼,所以確定是id過長。
解決方式有二,一是增加資料庫欄位長度(sql部分)、一是限制該輸入欄位(input form部分),
但基於會員id理應不會超過12位元,因此我不打算更改資料庫欄位,
而傾向限制欄位輸入的字元限制。
我的問題來了,當我翻註冊的程式頁面時,的確有25位元的限制,
因此可確定註冊時,註冊者是無法輸入超過25位元的id,
事實上這位玩家也是事後自行更改id才會導致亂碼發生。
我想知道的是,在個人資料修改的地方,主要是由那個程式控制id的資料庫欄位部分,
我想要針對該檔案設定和註冊頁面一樣,有25字元的限制。
麻煩心靈大大了,感謝!
雖然, 資料庫裡頭的 username 預設長度是 25 字元,
但是, 它和 '註冊的程式頁面時,的確有25位元的限制' 是不同的.
因為後者所限制的是 25 字.
由於每個 utf-8 編碼的國字, 約佔 1~4 個字元不等,
因此可想而知, 當會員更改名稱時, 若字數過多, 則尾端恐怕會出現亂碼.
這個道理, 跟主題過長會導致亂碼產生的道理一樣.
http://phpbb-tw.net/phpbb/viewtopic.php?t=17959
以下的修改, 提供您參考:
#
#-----[ OPEN ]-----
#
templates/subSilver/profile_add_body.tpl
#
#-----[ FIND ]-----
#
代碼: 選擇全部
<td class="row2"><input type="text" class="post" style="width:200px" name="username" size="25" maxlength="25" value="{USERNAME}" /></td>
#-----[ REPLACE WITH ]-----
#
代碼: 選擇全部
<td class="row2"><input type="text" class="post" style="width:200px" name="username" size="25" maxlength="8" value="{USERNAME}" /></td>
#-----[ SAVE & CLOSE ]-----
#
ps.
如此修改後, 無論會員註冊時填寫會員名稱, 和註冊後修改會員名稱,
其會員名稱最大長度都只有 8 個字.
