Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] 2.0与2.5真正的最完美的限制只用中文注册(汉字注册)的方法

  [复制链接]
xipick 发表于 2011-9-17 06:38:21 | 显示全部楼层 |阅读模式
本帖最后由 xipick 于 2012-6-19 13:21 编辑

希望大家不要再拿我的小网www.xipick.com进行测试了。话说按下面的方法2.5也可以实现限制为只能用中文注册哦


今天又发现,这种方法,在360极速浏览器(但改为兼容模式后又有效果了)中没有效果,照样可以输入数字或是字母。如果不在
source\class\class_member.php添加代码的话,光靠修改template----default----member----register.htm 里面的代码,一点作用都没有,还是能注册数字或是字母用户名


因为网站上经常有打小广告的用注册机注册发贴,那些注册的名字全是一串无意数的数与字母的组合,明显没人会记住的,看到这种注册会员头都大了,每天删起来也觉得烦,于是想只允许用中文名注册。

在论坛上搜了几个小时,一个一个的验证,终于东拉西凑的,弄了个自己觉得最完美的方法。

打开:template----default----member----register.htm

打开:template----default----member----register.htm   如使用的不是默认风格 就找你使用的风格包里
  1. <div class="rfm">
  2. <table>
  3. <tr>
  4. <th><span class="rq">*</span><label for="{$this->setting['reginput']['username']}">{lang username}:</label></th>
  5. <td><input type="text" id="{$this->setting['reginput']['username']}" name="" class="px" tabindex="1" autocomplete="off" size="25" maxlength="15" required /></td>
  6. <td class="tipcol"><i id="tip_{$this->setting['reginput']['username']}" class="p_tip">{lang register_username_tips}</i><kbd id="chk_{$this->setting['reginput']['username']}" class="p_chk"></kbd></td>
  7. </tr>
  8. </table>
  9. </div>
复制代码
替换为:
  1. <div class="rfm">
  2. <label>提示语:本论坛 『 <font color=red>只接受中文注册</font> 』用户名*</label>
  3. </tr>
  4. </table>
  5. </div>
  6. <div class="rfm">
  7. <table>
  8. <tr>
  9. <th><span class="rq">*</span><label for="{$this->setting['reginput']['username']}">{lang username}:</label></th>
  10. <td><input type="text" id="{$this->setting['reginput']['username']}" name="" class="px" tabindex="1" autocomplete="off" size="25" maxlength="15"

  11. onpropertychange="with(this)if(/[^\u3447-\uFA29]/ig.test(value))value=value.replace(/[^\u3447-\uFA29]/ig,'')" required /></td>
  12. <td class="tipcol"><i id="tip_{$this->setting['reginput']['username']}" class="p_tip">{lang register_username_tips}</i><kbd id="chk_{$this->setting

  13. ['reginput']['username']}" class="p_chk"></kbd></td>
  14. </tr>
  15. </table>
  16. </div>
复制代码
然后,再打开 source\class\class_member.php
在456行找到
  1. $username = addslashes(trim(dstripslashes($username)));
复制代码
2.5版的好像在这句话下面:
  1. $usernamelen = dstrlen($username);
复制代码
在它面行加上
  1. if(!preg_match("/^[\x7f-\xff]+$/", $username)) showmessage('出错啦!用户名只能全中文。'); //**** 中文注册修改
复制代码


其中那些提示的汉字可以自己修改成自己想要的。
修改完之后,注册界面和用非汉字注册时的效果如下两图:

注册界面效果图



用了非汉字注册后出错效果图


迎大家前去俺的小站查看效果www.xipick.com

如果不想修改代码,也可以直接把我上传的这两个文件下载解压后覆盖到相应的位置,我这两个文件都是从官方默认模板里面修改的,请放心使用:








还有一个在后台限制注册字母和数字的方法,似乎不太好,没有啥提示。
大概就是如下吧

1、在后台--注册与访问--注册链接文字,把“注册”改为“中文注册”或“注册”等
2、后台UCenter管理中心---注册设置---禁止的用户名:
  1. *q*
  2. *w*
  3. *e*
  4. *r*
  5. *t*
  6. *y*
  7. *u*
  8. *i*
  9. *o*
  10. *p*
  11. *a*
  12. *s*
  13. *d*
  14. *f*
  15. *g*
  16. *h*
  17. *j*
  18. *k*
  19. *l*
  20. *z*
  21. *x*
  22. *c*
  23. *v*
  24. *b*
  25. *n*
  26. *m*
  27. *Q*
  28. *W*
  29. *E*
  30. *R*
  31. *T*
  32. *Y*
  33. *U*
  34. *I*
  35. *O*
  36. *A*
  37. *S*
  38. *D*
  39. *F*
  40. *G*
  41. *H*
  42. *J*
  43. *K*
  44. *L*
  45. *Z*
  46. *X*
  47. *C*
  48. *V*
  49. *B*
  50. *N*
  51. *M*
  52. *1*
  53. *2*
  54. *3*
  55. *4*
  56. *5*
  57. *6*
  58. *7*
  59. *8*
  60. *9*
  61. *0*
  62. *管理员*
  63. *超级版主*
  64. *分版版主*
  65. *版主*
  66. *黑社会*
  67. *超版*
  68. *管理*
  69. *1*
  70. *2*
  71. *3*
  72. *4*
  73. *5*
  74. *6*
  75. *7*
  76. *8*
  77. *9*
  78. *0*
复制代码
最后说一点, 关于注册选项后的那些提示,比如“请输入正确的邮箱地址”“用户名由3到15个字符组成”这些,大家可以在source/language/membe/lang_template.php
这个文件中相应的地方修改

至于输入的信息不合要求的提示,比如:“抱歉,您输入的用户名小于 3 个字符,请输入一个较长的用户名”,这些信息在source/language/lang_message.php这个文件里面修改相应的文字就行了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
ilei365 发表于 2011-9-17 07:35:09 | 显示全部楼层
沙发支持个。。。
回复

使用道具 举报

xyxsj 发表于 2011-9-17 07:41:49 | 显示全部楼层
支持个。。。
回复

使用道具 举报

Sleven 发表于 2011-9-17 09:25:18 | 显示全部楼层
收藏一下备用~~谢谢楼主
回复

使用道具 举报

hj198025 发表于 2011-9-17 10:16:49 | 显示全部楼层
回复

使用道具 举报

ynqj 发表于 2011-9-17 10:18:56 | 显示全部楼层
留作备用
回复

使用道具 举报

江淮车友会 发表于 2011-9-17 10:47:33 | 显示全部楼层
这个好用,收藏了
回复

使用道具 举报

沙发客 发表于 2011-9-17 11:02:06 | 显示全部楼层
特殊字符呢
回复

使用道具 举报

lazhi 发表于 2011-9-17 11:05:33 | 显示全部楼层
沙发客 发表于 2011-9-17 11:02
特殊字符呢

特殊字符在后台禁止就行了                  
回复

使用道具 举报

wukunda 发表于 2011-9-17 11:35:38 | 显示全部楼层
额,这么难修改
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 12:23 , Processed in 0.033001 second(s), 2 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表