腾讯云网站解决方案帮您轻松应对建站成本高/网络不稳等常见问题

[Discuz] Discuz!修改注册用户名长度限制的方法及代码教程

1
回复
867
查看
[复制链接]

763

主题

777

帖子

3万

积分

董事

Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72

积分
32942
发表于 19-9-26 08:43:03 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  
+ C6 _+ I6 q/ {0 o
  在Discuz!中,系统默认的用户名长度是 3-15字节,但有一些网站可能会因为各种原因需要将用户名长度的限制做一些修改。所以结合之前的一些经验,完成了修改 注册用户名长度 的办法详细如下:
1 r+ \& L# I* j3 I' u/ L  1、修改注册类和用户名检查提示9 v# ]/ H3 g/ d; R. @
  打开 /source/class/class_member.php 文件- u. W9 a; c3 V7 k$ V; _2 d0 ^0 `' E
  找到+ N3 n) P8 a* U: e
  1.   $usernamelen = dstrlen($username);* A; @( @$ {+ E3 k& \
  2. ; X6 v1 J6 n" m
  3.   if($usernamelen < 3) {/ O/ Y- {  O* S: t( O% m: d7 ~8 i

  4. , [$ v2 P; u  @, R$ g/ }# q
  5.   showmessage('profile_username_tooshort');
    / E/ P: m( Y! ^. @
  6. . \- [: a  f+ @8 u1 j
  7.   } elseif($usernamelen > 15) {
    6 |6 h5 Y) _8 Q/ w, C$ f0 V

  8. " b6 e1 f" s, N
  9.   showmessage('profile_username_toolong');3 |4 m; Q: ]4 w+ e

  10. , y( ]) z5 O0 E; l2 L* |
  11.   }
复制代码
# \+ h0 @+ g2 @
  打开 /source/module/forum/forum_ajax.php 文件
5 ?% l3 d  h6 b4 \% g' y/ ^! \  找到
% Q6 M9 C: F/ c
  1.   if($usernamelen < 3) {
    / `( ]# a, I6 {  D, Y: X+ ^

  2. % B$ q' F$ G! c6 m, J
  3.   showmessage('profile_username_tooshort', '', array(), array('handle' => false));
    ; N/ P# t$ y8 F

  4. . O! b7 _0 z/ \+ m
  5.   } elseif($usernamelen > 15) {! B4 ^) q; P% H! G9 S7 x* ?
  6. ; m; s6 u% C8 }0 ]
  7.   showmessage('profile_username_toolong', '', array(), array('handle' => false));
    8 G1 M5 g  w0 S( t, F; v
  8. 8 N9 X4 |1 D) `3 @( y9 r' ^4 A8 E, H
  9.   }
    9 }5 X) R* q; B9 X0 K
复制代码

0 e. U5 C( t& I: ~9 c! h  打开文件 uc_client/model/user.php
. L7 U  @. y! `! c( g& f  找到
! A7 q7 o) N9 j4 G. l
9 ~/ h" D  b( Y7 h  f9 W
  1. function check_username($username) {
    . c7 A" `$ Z% y) `! D/ F

  2. / @9 w; [* ^8 \: X: d6 p
  3.   $guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
    6 P1 e% f% F7 J- `' T
  4. : n7 l4 D3 E: S: o/ A3 o' m& O
  5.   $len = $this->dstrlen($username);
    # U( K' V/ G) v" F5 X3 J* e6 `, Y
  6. 6 L2 }. B% t/ E5 g" ~
  7.   if($len > 15 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*"\s\<\>\&]|$guestexp/is", $username)) {
    1 n/ O/ Z" n; }# Q% g& i( o
  8. + W7 R% \$ D8 O4 y
  9.   return FALSE;
    * ~: U! |' c- b
  10. ' H# t1 g5 o, Z1 f# o0 a) w) k
  11.   } else {% q. i& y' a+ j- |' Y6 ]' S0 M& k
  12. - t, ]) t+ E( ^3 I9 _
  13.   return TRUE;4 t- q( m: u" B8 Y4 e! F
  14. , l- ?7 m' \5 t; {+ E/ @
  15.   }) h% O% y( U0 B5 j

  16.   z. j' Y% G* b, `5 i3 f5 k- {8 w( @
  17.   }
复制代码
' A* ]8 U; M4 X& }+ j9 l0 M/ j
  打开文件 static/js/register.js; O9 X4 ~. f2 j$ Q, e
  找到
5 l2 T" C! e) h; m
  1.   if(unlen < 3 || unlen > 15) {4 e' x7 d( J% h" P$ P
  2. 2 w5 i& c7 a3 ~6 l! Y" a
  3.   errormessage(id, unlen < 3 ? '用户名不得小于 3 个字符' : '用户名不得超过 15 个字符');' S( H- F3 J! w2 c

  4. , ]4 _/ \5 E# S4 u0 u( \) ]/ x
  5.   return;
    # K' c2 I) f4 P; t/ k! ~& M1 S) u5 Z

  6. 0 \# j$ G7 v8 t
  7.   }
复制代码
  `% n: H, U: B9 s: F) U
  把上面的15改成你需要的数字) H9 X1 h6 r* z! B& o2 Z1 c/ Y
  2、修改语言包提示语句; [5 E+ Q$ K" S; W' w- O: Y
  打开 /source/language/lang_message.php 文件
5 \9 m, j- p' d  找到
6 S1 S6 D0 o& g2 g8 K# I  'profile_username_toolong' => '抱歉,您的用户名超过 15 个字符,请输入一个较短的用户名',1 d! j1 ?1 W' w6 v
  把上面的15改成你需要的数字
+ B9 c3 M& K8 p7 U% R0 l* q8 f, u  打开 /source/language/mobile/lang_template.php 文件, G4 ]7 P  f( S$ S7 v- m: s
  找到
2 ~: I+ i0 H% v0 [# O* \: d  'reg_username' => '用户名必须为大于3位小于15位',1 n) s4 m) c/ w0 {
  'registerinputtip' => '用户名:3-15位',( x+ }/ x  n8 W3 ?
  把上面的15都改成你需要的数字
+ z6 `5 l6 k9 `. U- f9 A  到这里就全部改完了。
  f. E3 b5 e# z' J+ m
( M. W: c7 e3 U( V

0

主题

3

帖子

20

积分

1°伸手党

Rank: 2

积分
20
发表于 19-10-10 18:10:30 | 显示全部楼层         
我是来刷分的,嘿嘿
回复

使用道具 举报

网站简介

球球发,是一家 Discuz! 商业插件、风格模板、网站源码、 Discuz!运营维护技术等于一体的交流分享网站,全站95%的资源都是免费下载,对于资源我们是每天更新,每个亲测资源最新最全---球球发(如果我们有侵犯了您权益的资源请联系我们删除