Discuz X3.1最新修改注册用户名长度限制

公司最近在做一个游戏论坛,需要JAVA项目和Discuz同步登陆和退出,JAVA项目那边用了 discuz-ucenter-api-for-java 这个开源项目,那边的用户名是邮箱或者手机号码,长度肯定不止15个字符(邮箱账号的话@xxx.xxx就占了好几位),而Discuz的用户名也已经限制了长度,没办法,只能改源码了。我对DZ源码也不熟,于是在官方论坛搜了一大通,发现一帮人需要解决这个问题,但是官方一般给出的解释是:不建议修改。DZ自从被TX收购以后,节操掉的也差不多了,不愧为乌云上最无良厂商之一。遂去google了一下,虽然有一些提到,但都是X1.5,X2的,已经不适合新版的DZ了。

下面给出个人总结的解决办法:

1、 添加用户函数,修改source\class\class_member.php,定位578行,把

修改为(不一定要改为32,你需要多少位都可以,下同):

2、AJAX验证,修改source\module\forum\forum_ajax.php,定位22行,把

修改为:

3、前端js验证,修改static\js\register.js,定位281、282行,把

修改为:

4、Ucenter中的用户名过滤,修改uc_client\model\user.phpuc_server\model\user.php,同样定位到44行,把

修改为:

5、接着修改模板注册页面表单的长度的限制,修改template\default\member\register.htm,定位到125行,把

修改为:

6、然后修改语言包,修改source\language\lang_message.php,定位到230行,把

修改为:

7、接着修改语言包,修改source\language\member\lang_template.php,定位到52行,把

修改为:

8、最后是修改数据库的用户名长度限制,因为字段属性为 char(15),varchar(15),char(20)等等,我们统一修改它为 varchar(32),当然你要自己定义也无妨,复制和运行以下SQL语句即可:

友情提醒1 如果你用了我的马甲插件,还要执行这句:

友情提醒2 安装插件的时候最好也看看有没有涉及到用户名的字段,有的话也要修改。

修改完成:

無名の QQ スクリーンショット20140320105953

这篇文章有34条评论

  1. Ggicci 2014/3/22 #1 回复TA

    官方提供一个可配置选项就好了,扫了一下酱紫真的折腾啊__________________________

  2. Sapphirell 2014/3/22 #2 回复TA

    橙酱菊苣

  3. Kunr 2014/3/23 #3 回复TA

    菊苣/w discuz 很坑爹的 (不过在插件模板 的机制方面比pw好
    (pw那叫麻烦死人

  4. 新的一周,祝充满能量,开心面对每一天!

  5. maillot trek 2014/3/27 #5 回复TA

    博主是做游戏开发的?

  6. 长长的代码

  7. 要改这么多地方额

  8. 文字头像吧 2014/7/11 #8 回复TA

    先来关注下了哈。

  9. 看了下,国外的论坛也没有超越discuz的~~~

  10. sxqfire 2015/11/27 #10 回复TA

    非常感谢楼主,省了好多事,万分感谢

  11. 宅牛 2016/8/8 #11 回复TA

    正好需要,楼主神人,感谢感谢!

发表评论

*

List
Love
00:00