本帖最后由 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 如使用的不是默认风格 就找你使用的风格包里- <div class="rfm">
- <table>
- <tr>
- <th><span class="rq">*</span><label for="{$this->setting['reginput']['username']}">{lang username}:</label></th>
- <td><input type="text" id="{$this->setting['reginput']['username']}" name="" class="px" tabindex="1" autocomplete="off" size="25" maxlength="15" required /></td>
- <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>
- </tr>
- </table>
- </div>
复制代码 替换为:- <div class="rfm">
- <label>提示语:本论坛 『 <font color=red>只接受中文注册</font> 』用户名*</label>
- </tr>
- </table>
- </div>
- <div class="rfm">
- <table>
- <tr>
- <th><span class="rq">*</span><label for="{$this->setting['reginput']['username']}">{lang username}:</label></th>
- <td><input type="text" id="{$this->setting['reginput']['username']}" name="" class="px" tabindex="1" autocomplete="off" size="25" maxlength="15"
- onpropertychange="with(this)if(/[^\u3447-\uFA29]/ig.test(value))value=value.replace(/[^\u3447-\uFA29]/ig,'')" required /></td>
- <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>
- </tr>
- </table>
- </div>
复制代码 然后,再打开 source\class\class_member.php
在456行找到
- $username = addslashes(trim(dstripslashes($username)));
复制代码 2.5版的好像在这句话下面:- $usernamelen = dstrlen($username);
复制代码 在它下面行加上
- if(!preg_match("/^[\x7f-\xff]+$/", $username)) showmessage('出错啦!用户名只能全中文。'); //**** 中文注册修改
复制代码
其中那些提示的汉字可以自己修改成自己想要的。
修改完之后,注册界面和用非汉字注册时的效果如下两图:
注册界面效果图
用了非汉字注册后出错效果图
迎大家前去俺的小站查看效果www.xipick.com
如果不想修改代码,也可以直接把我上传的这两个文件下载解压后覆盖到相应的位置,我这两个文件都是从官方默认模板里面修改的,请放心使用:
还有一个在后台限制注册字母和数字的方法,似乎不太好,没有啥提示。
大概就是如下吧
1、在后台--注册与访问--注册链接文字,把“注册”改为“中文注册”或“注册”等 - *q*
- *w*
- *e*
- *r*
- *t*
- *y*
- *u*
- *i*
- *o*
- *p*
- *a*
- *s*
- *d*
- *f*
- *g*
- *h*
- *j*
- *k*
- *l*
- *z*
- *x*
- *c*
- *v*
- *b*
- *n*
- *m*
- *Q*
- *W*
- *E*
- *R*
- *T*
- *Y*
- *U*
- *I*
- *O*
- *A*
- *S*
- *D*
- *F*
- *G*
- *H*
- *J*
- *K*
- *L*
- *Z*
- *X*
- *C*
- *V*
- *B*
- *N*
- *M*
- *1*
- *2*
- *3*
- *4*
- *5*
- *6*
- *7*
- *8*
- *9*
- *0*
- *管理员*
- *超级版主*
- *分版版主*
- *版主*
- *黑社会*
- *超版*
- *管理*
- *1*
- *2*
- *3*
- *4*
- *5*
- *6*
- *7*
- *8*
- *9*
- *0*
复制代码 最后说一点, 关于注册选项后的那些提示,比如“请输入正确的邮箱地址”“用户名由3到15个字符组成”这些,大家可以在source/language/membe/lang_template.php
这个文件中相应的地方修改
至于输入的信息不合要求的提示,比如:“抱歉,您输入的用户名小于 3 个字符,请输入一个较长的用户名”,这些信息在source/language/lang_message.php这个文件里面修改相应的文字就行了 |