UCenter同步HDWiki及其他APP用戶長度限制

                                         UCenter同步HDWiki及其他APP用戶長度限制

 
 
        今天在項目中遇到一個問題,當UCenter接入了自己開發的APP的時候,在某些狀況下(如用QQ郵箱註冊),就會超過其字段長度的限制。怎麼解決呢?在此,我將我的解決方案分享給大家,大家共同交流,共同學習,少走彎路。
 
     本人所使用的環境版本:
    Linux版本:萬網CentOS5.4
    HDWiki版本:5.1
    UCenter版本:1.6.0
    PHP版本:5.3x
    MySQL版本:5.1

    1,更改數據庫,讓用戶名直接支持指定長度的字符串(這裏以30爲參考):

      (1)更改UCenter庫中uc_menbers表用戶名長度限制;

         

	ALTER  TABLE  `ucenter`.`uc_menbers` MODIFY COLUMN `username`  CHAR(30) NOT NULL; 

      (2)更改HDWiki庫中wiki_user表中的用戶名長度限制:

 

	ALTER  TABLE  `hdwiki`.`wiki_user` MODIFY COLUMN `username`  CHAR(30) NOT NULL; 

 

     2,更改PHP源碼:
       (1)更改UCenter部分源碼:
               ucenter/model/user.php文件 約第44行
                    $len > 15
               更改爲:
                    $len > 30
        (2)更改HDWiki部分源碼:
               hdwiki/api/uc_client/model/user.php文件約 第39行
                    $len > 15
               更改爲:
                    $len > 30
               hdwiki/control/user.php文件約第43行
                    {$this->setting['name_max_length'] = 15;}  
               改爲:
                    {$this->setting['name_max_length'] = 32;} 

     3,HDWiki登錄時“用戶名包含敏感字符!”解決
           hdwiki/control/user.php 文件約311行:
               if(!preg_match("/^[\w\s\d_\x80-\xff]+$/i", $username) || (!$_ENV['user']->check_name($username) && $type>0)){
               更改爲:
                if(!preg_match("/^[\w\s\d_\x80-\xff.@]+$/i", $username) || (!$_ENV['user']->check_name($username) && $type>0)){
               即,更改其正則表達式使之支持郵箱登錄。
 
 
                祝你好運~~

 

 

發佈了47 篇原創文章 · 獲贊 124 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章