這篇文章只適用在當你把系統
更新到1.1.2後, 在登入時出現使用者帳號和密碼錯誤而無法登入時!
你才必需做以下的修改.
如果你是1.1以後全新安裝的使用者,那麼你可以略過這篇文章.
修改的地方在 安裝目錄下的/class/dao/userdata/lifetypeuserdataprovider.class.php
在第73行找到
if( $user->getUsername() != $username ) {
換成
if( strtolower($user->getUsername()) != $username ) {
這樣就可以了.
原因是因為在1.1.x以後帳號只能以小寫的英文和數字存在(因為帳號要支援 domain name的關係 )
所以如果你是像我一樣從0.32一路升級上來的使用者,那麼就非常可能會遇到這樣的問題.
如果使用者的帳號在註冊時包含大寫字母,在1.1.2登入時會把輸入的帳號全部轉換成小寫字母.
這樣在比對時就會發生錯誤
因此上面的修改,就是把從資料庫中取出的帳號也轉換成小寫字母.來通過比對的過程.讓使用者可以順利登入.
感謝mark提供的協助
同時也發現在tmp下的log檔在找出問題發生的原因時真的是非常有用的工具.
因此也請大家在發問問題時,盡量同時提供tmp下的log檔內容.
那對問題的解決真的是有非常大的幫助阿 Orz.
James.