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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[分享] UCHOME让注册必须填写性别,生日,个人资料里面的内容都可以加入

[复制链接]
w3xiuling 发表于 2009-12-11 22:08:45 | 显示全部楼层 |阅读模式
本帖最后由 w3xiuling 于 2009-12-13 14:17 编辑

注册时的效果:




现在给出最完善的方法,想加什么就加什么,以前的原始方法我放到最下面,已经修改过的朋友可以照着看,我现在的方法修改的地方更少咯

我大体方法就是按照系统默认的注册后修改个人资料页面来修改的,所以大家如果要添加新的内容就去这里改,模板是cp_profile.htm,程序是cp_profile.php,这里就能找到所需要的内容

现在以加入性别和生日为例(下面大红色的最原始的方法,大家可以把第二步和第三步还原即可,其余的不需要动,谢谢)

第一步:

template/default/do_register.htm中找到
  1. <tr><th>再次输入密码</th><td><input type="password" id="password2" name="password2" value="" class="t_input"  onBlur="checkPassword2()" tabindex="4" />&nbsp;<span id="checkpassword2">&nbsp;</span></td></tr>
复制代码
在其后面加上
  1. <tr>
  2.           <th>性别</th>
  3.           <td><label for="sexm"><input name="sex" type="radio" id="sexm" value="1" checked="checked"/>
  4.           男</label>
  5.                 <label for="sexw"><input id="sexw" type="radio" value="2" name="sex"/>女</label>
  6.                 <span style="font-weight:bold;color:red;">(性别选择确定后,将不能再次修改)</span></td>
  7.     </tr>
  8. <tr>
  9. <th>生日:</th>
  10.         <td>
  11.                 <select id="birthyear" name="birthyear" onchange="showbirthday();">
  12.                         <option value="0">&nbsp;</option>
  13.                         $birthyeayhtml
  14.                 </select> 年
  15.                 <select id="birthmonth" name="birthmonth" onchange="showbirthday();">
  16.                         <option value="0">&nbsp;</option>
  17.                         $birthmonthhtml
  18.                 </select> 月
  19.                 <select id="birthday" name="birthday">
  20.                         <option value="0">&nbsp;</option>
  21.                         $birthdayhtml
  22.                 </select> 日
  23.                 <a href="cp.php?ac=friend&op=search&view=birthyear" target="_blank">&raquo; 查找同生日朋友</a>
  24.         </td>
  25. </tr>
复制代码
程序文件需要修改:

第二步:

source/do_register.php

中找到
  1. $password = $_POST['password'];
复制代码
在其后面加上

  1. $_POST['sex'] = intval($_POST['sex']);
  2.                 if($_POST['sex']) $setarrs['sex'] = $_POST['sex'];
  3.                 $setarrs = array(
  4.                 'birthyear' => intval($_POST['birthyear']),
  5.                 'birthmonth' => intval($_POST['birthmonth']),
  6.                 'birthday' => intval($_POST['birthday'])
  7.                 );

复制代码
  1. $space = space_open($newuid, $username, 0, $email);
复制代码
后面加上
  1. updatetable('spacefield', $setarrs, array('uid'=>$newuid));
复制代码
  1. $register_rule = data_get('registerrule');
复制代码
后面加上:
  1. //生日:年
  2.         $birthyeayhtml = '';
  3.         $nowy = sgmdate('Y');
  4.         for ($i=0; $i<100; $i++) {
  5.                 $they = $nowy - $i;
  6.                 $birthyeayhtml .= "<option value="$they">$they</option>";
  7.         }
  8.         //生日:月
  9.         $birthmonthhtml = '';
  10.         for ($i=1; $i<13; $i++) {
  11.                 $birthmonthhtml .= "<option value="$i">$i</option>";
  12.         }
  13.         //生日:日
  14.         $birthdayhtml = '';
  15.         for ($i=1; $i<32; $i++) {
  16.                 $birthdayhtml .= "<option value="$i">$i</option>";
  17.         }
复制代码
这段代码是控制注册页面显示生日下拉框的


好了,新方法到这里就可以了,不需要动系统默认的程序,这样更好

尽量在不动系统程序文件的前提下操作,这样最好

如果还要加其它内容,照着我前面说的两个文件上面的程序来加新内容即可,有什么问题,直接回复

照这样做,你把个人资料全搬来都没啥困难了,呵呵









这是最原始的方法,请用上面最新方法,这里只是为了为用过的朋友恢复的,对用过的朋友感到抱歉,因为当时只考虑增加性别没考虑增加其它的内容,sorry

第一步:

template/default/do_register.htm中找到
  1. <tr><th>再次输入密码</th><td><input type="password" id="password2" name="password2" value="" class="t_input"  onBlur="checkPassword2()" tabindex="4" />&nbsp;<span id="checkpassword2">&nbsp;</span></td></tr>
复制代码
在其后面加上
  1. <tr>
  2.           <th>性别</th>
  3.           <td><label for="sexm"><input name="sex" type="radio" id="sexm" value="1" checked="checked"/>
  4.           男</label>
  5.                 <label for="sexw"><input id="sexw" type="radio" value="2" name="sex"/>女</label>
  6.                 <span style="font-weight:bold;color:red;">(性别选择确定后,将不能再次修改)</span></td>
  7.     </tr>
复制代码
程序文件需要修改:

第二步:

source/do_register.php

中找到
  1. $password = $_POST['password'];
复制代码
在其后面加上
  1. $sex = intval($_POST['sex']);
复制代码
找到
  1. $space = space_open($newuid, $username, 0, $email);
复制代码
修改为:
  1. $space = space_open($newuid, $username, 0, $sex, $email);
复制代码
第三步:
source/function_space.php中找到
  1. function space_open($uid, $username, $gid=0, $email='') {
复制代码
修改为
  1. function space_open($uid, $username, $gid=0, $sex=0, $email='') {
复制代码
找到
  1. inserttable('spacefield', array('uid'=>$uid, 'email'=>$email), 0, true);
复制代码
修改为:
  1. inserttable('spacefield', array('uid'=>$uid, 'sex'=>$sex, 'email'=>$email), 0, true);
复制代码
OK了

别忘记更新缓存看效果

如果想它不是必须填写就把模板里面的
checked="checked"这个去掉,注册的时候想选就选了

本帖子中包含更多资源

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

x
gyz111 发表于 2009-12-12 07:46:50 | 显示全部楼层
太好了,我沙发呀,顶一下!
回复

使用道具 举报

leonswin 发表于 2009-12-12 13:21:25 | 显示全部楼层
太难了,看不懂啦~~
回复

使用道具 举报

qdcaishen 发表于 2009-12-12 14:24:31 | 显示全部楼层
hao ....支持。。。
回复

使用道具 举报

leonswin 发表于 2009-12-12 15:01:52 | 显示全部楼层
厉害哇,不知道可不可行哇?!
回复

使用道具 举报

栾川吧001 发表于 2009-12-12 22:45:24 | 显示全部楼层
晕!都不可行!差点把我的弄乱!都不显示注册页面了!
回复

使用道具 举报

 楼主| w3xiuling 发表于 2009-12-12 23:44:07 | 显示全部楼层
我是测试过了放上来
回复

使用道具 举报

MFyoyo.. 发表于 2009-12-13 01:24:25 | 显示全部楼层
代码无错可行。如果增加年龄可以按照同样的思路,不过代码有点出路。y-m-d的形式。
回复

使用道具 举报

 楼主| w3xiuling 发表于 2009-12-13 03:26:57 | 显示全部楼层
回复 8# MFyoyo..


    我已经在主题帖中进行完善了,现在想加啥就加啥了
回复

使用道具 举报

 楼主| w3xiuling 发表于 2009-12-13 03:44:56 | 显示全部楼层
回复 6# 栾川吧001


  此功能我测试过了的,现在用我的新方法,不需要修改程序文件了,这样比较完善
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-27 00:28 , Processed in 0.026431 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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