Alvin.Hsin 寫:結論:
修改資料庫可以改善顯示不正常的問題,可是會員名稱超過8個中文字還是會有登入以及管理帳號上的問題。
請問捕手老師,我該如何修改下列兩個檔案
includes/functions.php
includes/usercp_register.php
我參考了 [神川小羽] 大大這篇文章
UTF-8化後對於字串長度的處理,卻看不出什麼頭緒可以修改的地方。
感謝捕手老師的指教...
我的觀點只是源於昔日修改 '多國語言...' 的經驗.
http://phpbb-tw.net/phpbb/viewtopic.php?t=35623
您說的會員 '登入以及管理帳號上的問題' 通通和這個函式 phpbb_clean_username() 有關.
以下的修改, 提供您參考:
#
#-----[ OPEN ]-----
#
includes/functions.php
#
#-----[ FIND ]-----
#
代碼: 選擇全部
$username = substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 25);
#
#-----[ REPLACE WITH ]-----
# ps. **40** 只為配合您資料庫修改的數值
#
代碼: 選擇全部
$username = substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 40);
#
#-----[ SAVE & CLOSE ]-----
#
至於 includes/usercp_register.php 的修改, 只為修正註冊後相關的通知信件,
其中的會員名稱顯示不正常而已. 如下:
#
#-----[ FIND ]-----
# ps. 類似的地方有5個, 全部取代
#
#
#-----[ REPLACE WITH ]-----
# ps. **40** 只為配合您資料庫修改的數值
#
--
若要參考 '
UTF-8化後對於字串長度的處理' 修改,
則更為方便, 只要修改一個檔案即可, 就連資料庫也不必修改.
因為修改後, 輸入的會員名稱 (無論是中英文) 最多可以有25個字.
以下的修改, 提供您參考:
#
#-----[ OPEN ]-----
#
includes/functions.php
#
#-----[ FIND ]-----
#
代碼: 選擇全部
$username = substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 25);
#
#-----[ REPLACE WITH ]-----
#
代碼: 選擇全部
$username = mb_substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 25, 'utf-8');
#
#-----[ SAVE & CLOSE ]-----
#