[問題]會員改名後,因長度過長,導致亂碼問題(已解決,感謝心靈大大)

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
主題已鎖定
nightwinded
星球普通子民
星球普通子民
文章: 5
註冊時間: 2006-03-06 18:14

[問題]會員改名後,因長度過長,導致亂碼問題(已解決,感謝心靈大大)

文章 nightwinded »

●架設主機作業系統:Linux
●您的上網方式:ADSL
●您的 phpBB2 版本:phpBB (2.0.22 UTF-8)。
●錯誤狀態:會員改名後,因取名字過長,導亂名字變成亂碼

這兩天替遊戲公會架設一個網站,因此id以遊戲為主,
遊戲的id最多六個中文字,phpbb預設25字元足敷使用。

但是今天發現某會員註冊之後,將id改超過25字元,導致id後面出現亂碼,
原本我以為可以仿照主題限制字數方式來更改id,
卻發現原本註冊的欄位本就限制25字元了。

遊戲角色id可能會有改變,所以我開放會員可以自行更改名字,
若我要限制會員更改名字時,一樣有25字元的限制,應該改那個檔案呢?

感謝各位大大的回覆。
最後由 nightwinded 於 2007-03-26 09:55 編輯,總共編輯了 1 次。
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8540
註冊時間: 2004-04-30 01:54
來自: Taiwan

Re: [問題]會員改名後,因長度過長,導致亂碼問題

文章 心靈捕手 »

nightwinded 寫:●架設主機作業系統:Linux
●您的上網方式:ADSL
●您的 phpBB2 版本:phpBB (2.0.22 UTF-8)。
●錯誤狀態:會員改名後,因取名字過長,導亂名字變成亂碼

這兩天替遊戲公會架設一個網站,因此id以遊戲為主,
遊戲的id最多六個中文字,phpbb預設25字元足敷使用。

但是今天發現某會員註冊之後,將id改超過25字元,導致id後面出現亂碼,
原本我以為可以仿照主題限制字數方式來更改id,
卻發現原本註冊的欄位本就限制25字元了。

遊戲角色id可能會有改變,所以我開放會員可以自行更改名字,
若我要限制會員更改名字時,一樣有25字元的限制,應該改那個檔案呢?

感謝各位大大的回覆。
實在看不懂您的問題是甚麼?

既然您知道 '原本註冊的欄位本就限制25字元了'
那麼怎麼會有這個問題呢? :-?
'若我要限制會員更改名字時,一樣有25字元的限制,應該改那個檔案呢?'
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
hollowaysxp
竹貓忠實會員
竹貓忠實會員
文章: 535
註冊時間: 2004-06-01 22:39
來自: 仙境傳說回憶最美~台灣桃園
聯繫:

文章 hollowaysxp »

資料庫表phpbb_users
找到
欄位username
型態varchar(25)

所以使用者名稱限制25個字元是在這裡限制。
才會產生亂碼。
因為中文為2個字元。
25 / 2= 12 ........ 1
所以最後一個中文字是用1個字元再裝,所以產生亂碼。
這一個方法就是修改表格內的字元最大長度。

至於改了之後會有問題存在嗎?我也不知道 :mrgreen:
●架設主機作業系統: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論壇
nightwinded
星球普通子民
星球普通子民
文章: 5
註冊時間: 2006-03-06 18:14

Re: [問題]會員改名後,因長度過長,導致亂碼問題

文章 nightwinded »

心靈捕手 寫:實在看不懂您的問題是甚麼?

既然您知道 '原本註冊的欄位本就限制25字元了'
那麼怎麼會有這個問題呢? :-?
'若我要限制會員更改名字時,一樣有25字元的限制,應該改那個檔案呢?'
抱歉,我也覺得寫的有點亂 :-(

首先是會員的id產生亂碼的問題,
因為只有後半部有亂碼,所以確定是id過長。

解決方式有二,一是增加資料庫欄位長度(sql部分)、一是限制該輸入欄位(input form部分),
但基於會員id理應不會超過12位元,因此我不打算更改資料庫欄位,
而傾向限制欄位輸入的字元限制。

我的問題來了,當我翻註冊的程式頁面時,的確有25位元的限制,
因此可確定註冊時,註冊者是無法輸入超過25位元的id,
事實上這位玩家也是事後自行更改id才會導致亂碼發生。

我想知道的是,在個人資料修改的地方,主要是由那個程式控制id的資料庫欄位部分,
我想要針對該檔案設定和註冊頁面一樣,有25字元的限制。

麻煩心靈大大了,感謝!
nightwinded
星球普通子民
星球普通子民
文章: 5
註冊時間: 2006-03-06 18:14

文章 nightwinded »

hollowaysxp 寫:資料庫表phpbb_users
找到
欄位username
型態varchar(25)

所以使用者名稱限制25個字元是在這裡限制。
才會產生亂碼。
因為中文為2個字元。
25 / 2= 12 ........ 1
所以最後一個中文字是用1個字元再裝,所以產生亂碼。
這一個方法就是修改表格內的字元最大長度。

至於改了之後會有問題存在嗎?我也不知道 :mrgreen:
我不想改資料庫欄位啦 :cry:
nightwinded
星球普通子民
星球普通子民
文章: 5
註冊時間: 2006-03-06 18:14

文章 nightwinded »

補充:

前兩天因為某些會員id無法註冊(例如:惠),因此我採用心靈大大的改法:
http://phpbb-tw.net/phpbb/viewtopic.php?p=226438#226438

如此做不曉得是否為亂碼問題發生的原因呢?
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8540
註冊時間: 2004-04-30 01:54
來自: Taiwan

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 個字.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
nightwinded
星球普通子民
星球普通子民
文章: 5
註冊時間: 2006-03-06 18:14

文章 nightwinded »

修改後ok囉,可以限制輸入的id長度了,感謝心靈大大 :-D
主題已鎖定

回到「phpBB 2 安裝與使用」