1 頁 (共 1 頁)

[問題] 會員名稱有& 符便出問題. (解決了)

發表於 : 2006-07-03 00:55
kkt
以下問題未能介定是外掛所致, 還是 phpbb 本質問題. 抱歉暫發本區求教.

問題概述:
又遇到一個怪問題, 我站上有一位會員, 註冊名字是 m&m 已用了一年.
但突然他的名字不被系統接受. 被判為非法字元.

=================================

問題過程:

發生情況是這樣的..較早前我曾裝了外掛:

問題外掛: Custom mass PM 1.4.7 (發送大量私人訊息)
參考連結: http://phpbb-tw.net/phpbb/viewtopic.php?t=36201
裝在版本: 2.015

之後經過一些修正:
http://phpbb-tw.net/phpbb/viewtopic.php?t=44990

然後使用正常了, 直至今天, 這會員發覺他不能接收pm.
於是我試了一下, 訊息顯示為:

很抱歉! 這個會員名稱並不存在 'm

==================================

我進入資料庫, 卻見該會員的名字 m&m 亂碼了, 我替他改回 m&m
但卻不能登入.

我便嘗試用有 & 的字符註冊, 系統卻說我不能用非法字元.

我便再測試一下其它萬用字符, 發現除了 & 之外, 其他的沒有問題.

==================================

我現在祇有叫該會員不用 & 這字符.

但想請教有大大曾有此經歷嗎 ?

又好像是裝了"發送大量私人訊息" 才有此情況, 裝這外掛的其他大大有此情況嗎 ?
而我曾嘗試在這外掛作多語修正, 但無效.

=================================

我的資料庫編碼 : utf-8
論壇編碼 : big-5

請知道的大大指教是那方面的錯誤, 多謝您的協助!!




.

發表於 : 2006-07-03 04:56
jwxinst
但是這樣子看好像是是在資料庫的問題
我的資料庫編碼 : utf-8
論壇編碼 : big-5

但是以前都沒有這種情況吧
論壇編碼其實也不太重要 :oops:
只要編碼對校沒有出錯.....

參考外面的討論
話說內部資料庫永遠是用utf8去存
MySQL會自動把編碼轉過去
除非你連線的時候用big5編碼宣告
但是送資料的時候用其他編碼送
這樣才會出問題
再來就是如果你安裝MySQL的時候資料庫編碼選擇utf8的話
phpMyAdmin根本就不會出現utf8以外的編碼格式給你選XDD
這只是很表面上的看
畢竟你用了這麼久, 而m&m他是最近收不了...
那麼你一直都是用這樣子的資料庫嗎?


難道這個問題也會關係到 多國語系修正?
// Start replacement - Custom mass PM MOD
$to_username_array = explode (";", phpbb_clean_username($HTTP_POST_VARS['username']));
usort ($to_username_array);
foreach ($to_username_array as $name) $to_usernames .= "'".htmlspecialchars(trim($name))."',";
$to_usernames[strlen($to_usernames)-1]=" ";
// End replacement - Custom mass PM MOD

以上只是個人的假設...如有誤, 請各位多多指教 :mrgreen:

發表於 : 2006-07-07 04:08
kkt
不一定是資料庫的問題, 也不肯定是 Custom mass PM MOD 的問題.
因為上文我已說了, 該名字是用了一年, 是突然發生的.

但我現在不想修正它了. 因為我發覺莫名其妙的多了幾項功能.
我強調絕對沒有加裝任何有關外掛.

現在註冊用 & 或一些非法字元是不行的, 那更好更安全.

同時在快速回覆版面, 竟自動要求訪客輸入認證碼. 根本就沒有快速回覆需確認這外掛.


真的太神奇!! :-o 很滿意啊!! :-D 反正是莫名奇妙中, phpbb 真奇怪.. :roll:



.

發表於 : 2006-07-08 07:14
jwxinst
我覺得這是裝了某個外掛後, 動到資料庫
導致以前做的修正沒用了..... :oops:

發表於 : 2006-07-11 18:25
DL
因為這是用在發送私人訊息時, 可以用&和;連接多個帳號, 要是能用這來當帳號, 那麼發信時, m&m&kkt, 程式要怎麼分辨?

發表於 : 2006-07-13 03:29
kkt
DL 寫:因為這是用在發送私人訊息時, 可以用&和;連接多個帳號, 要是能用這來當帳號, 那麼發信時, m&m&kkt, 程式要怎麼分辨?
多謝您, DL 大的指點. 這問題終於解決了.

確實是 "群組大量訊息" 這外掛所影響的.
因為之前我以為其他的萬用字符沒有受影響, 所以沒想到.
原來是這外掛本身選了 & 作為區間字元.
, ; 則是 phpbb 內設的.

所以裝此外掛後, 要注意對舊會員帶有 & 的有影響.
而我是得到 computer315 提醒了轉用全形的 解決了. 謝謝!!


ps. 當然如需要指定用 & 的, 則要把 groupmsg.php 內的 & 改為其他區間符了.



.