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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[经验] 【分享】让用户在注册时填写真实姓名

[复制链接]
Storys 发表于 2009-11-18 12:06:17 | 显示全部楼层 |阅读模式
本帖最后由 Storys 于 2009-11-18 14:03 编辑

刚浏览到昨天有人发帖需要,正好我也刚改好。

一、
编辑你当前模板下 do_register.htm 文件
找到代码:
  1. <!--{if $register_rule}-->
复制代码
在上面添加:
  1.         <tr>
  2. <th style="vertical-align: top;"><span class="reg_option">中文真实姓名:</span></th>
  3. <td><input type="text" id="realname" name="realname" value="" class="t_input2" onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onBlur="checkRealName()" tabindex="5" /> &nbsp;<span id="checkrealname">&nbsp;请一定填写您的<font color=red>真实中文姓名</font>,非真实姓名,将不能通过系统的审核。</span><br/><span style="color:#888;">以方便朋友联络,默认设置下,只有您的熟人才能看到您的资料。</span></td>
  4. </tr>
复制代码
找到代码:
  1. function checkUserName() {
复制代码
在上面添加:
  1.         function checkRealName(confirm) {
  2. var realname = trim($('realname').value);
  3. var crn = $('checkrealname');
  4. var urnLen = realname.replace(/[^\x00-\xff]/g, "**").length;
  5. if(urnLen < 4 || urnLen > 10) {
  6. if ( urnLen < 4){
  7. crn.style.display = '';
  8. crn.innerHTML = '<img src="image/check_error.gif" width="13" height="13"> 请一定填写您的真实中文姓名,<font color=red>必须大于2个汉字</font> ' ;
  9. crn.className = "warning";
  10. return false;
  11. }else if(urnLen > 10){
  12. crn.style.display = '';
  13. crn.innerHTML = '<img src="image/check_error.gif" width="13" height="13"> 请一定填写您的真实中文姓名,<font color=red>不能超过 5 个汉字 </font>' ;
  14. crn.className = "warning";
  15. return false;       
  16. }
  17. }else{
  18. crn.style.display = '';
  19. crn.innerHTML = '<img src="image/check_right.gif" width="13" height="13">';
  20. return true;
  21. }
  22. }
复制代码
二、
在 source 目录下找到文件 do_register.php
找到代码:
  1. $email = isemail($_POST['email'])?$_POST['email']:'';
复制代码
在下面添加:
  1. $realname = trim($_POST['realname']);
复制代码
找到代码:
  1. if(!$_POST['password'] ||$_POST['password'] != addslashes($_POST['password'])) {
  2. showmessage('profile_passwd_illegal');
  3. }
复制代码
在下面添加:
  1. if(empty($realname)){
  2. showmessage('realname_is_null');
  3. }
复制代码
找到代码:
  1. updatetable('spacefield',$jiasetarr,array('uid'=>$newuid));
复制代码
下面添加:
  1. updatetable('space',array('name'=>$realname),array('uid'=>$newuid));
复制代码
三、
在language目录下找到文件:lang_showmessage.php
找到代码:
  1. 'register_error' => '注册失败',
复制代码
在下面添加:
  1. 'realname_is_null'=>'中文真实姓名未填写',
复制代码
四、
最后请记住:后台更新缓存
如果姓名可以输入英文:
在do_register.htm 文件中
  1. value=value.replace(/([^\u4E00-\u9FA5])/g,'')
复制代码
改为
  1. value=value.replace(/([^\u4E00-\u9FA5a-z])/g,'')
复制代码

评分

1

查看全部评分

1753103 发表于 2009-11-18 12:07:04 | 显示全部楼层
好贴
回复

使用道具 举报

sadpig 发表于 2009-11-18 12:09:07 | 显示全部楼层
支持下!!!!!!!!!!!!!
回复

使用道具 举报

1753103 发表于 2009-11-18 12:18:12 | 显示全部楼层
回复

使用道具 举报

沧州开心网 发表于 2009-11-18 12:30:28 | 显示全部楼层
支持下 楼主好人啊
回复

使用道具 举报

hs999 发表于 2009-11-18 12:40:59 | 显示全部楼层
测试有问题 ,
在注册时埴写实名 后,登录进入个人消息编辑,实名那里却是空的~~~~~
回复

使用道具 举报

 楼主| Storys 发表于 2009-11-18 12:43:17 | 显示全部楼层
6# hs999


    恩,稍等下。我看下
回复

使用道具 举报

 楼主| Storys 发表于 2009-11-18 12:52:38 | 显示全部楼层
6# hs999


   忘记加更新的了;

在 do_register.php 中
找到代码
  1. updatetable('spacefield',$jiasetarr,array('uid'=>$newuid));
复制代码
下面添加
  1. updatetable('space',array('name'=>$realname),array('uid'=>$newuid));
复制代码
回复

使用道具 举报

qiapu 发表于 2009-11-18 13:22:52 | 显示全部楼层
定期,支持一下
回复

使用道具 举报

guduyaya 发表于 2009-11-18 13:26:56 | 显示全部楼层
支持下!!!!!!!!!!!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 16:33 , Processed in 0.040423 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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