UCenter同步HDWiki及其他APP用户长度限制

6 篇文章 0 订阅
2 篇文章 0 订阅

                                         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)){
               即,更改其正则表达式使之支持邮箱登录。
 
 
                祝你好运~~

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值