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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

UCH注册后论坛免激活解决方案(已修正)

[复制链接]
jemmy0329 发表于 2008-9-9 15:42:15 | 显示全部楼层 |阅读模式
本帖最后由 jemmy0329 于 2008-10-16 15:54 编辑

修改2个文件。

第一个: source/fucntion_common.php

找到
  1. function tname($name) {
  2.         global $_SC;
  3.         return $_SC['tablepre'].$name;
  4. }
复制代码
在下面添加:
  1. function bbsname($name) {
  2. global $_SC;
  3. return "cdb_".$name;
  4. }
复制代码
找到:
  1. //更新数据
  2. function updatetable($tablename, $setsqlarr, $wheresqlarr, $silent=0) {
复制代码
在上面添加:
  1. //向bbs添加数据
  2. function inserttable_to_bbs($tablename, $insertsqlarr, $returnid=0, $replace = false) {
  3. global $_SGLOBAL;
  4. $insertkeysql = $insertvaluesql = $comma = '';
  5. foreach ($insertsqlarr as $insert_key => $insert_value) {
  6. $insertkeysql .= $comma.'`'.$insert_key.'`';
  7. $insertvaluesql .= $comma.'\''.$insert_value.'\'';
  8. $comma = ', ';
  9. }
  10. $method = $replace?'REPLACE':'INSERT';
  11. $_SGLOBAL['db']->query($method.' INTO '.bbsname($tablename).' ('.$insertkeysql.') VALUES ('.$insertvaluesql.') ');
  12. if($returnid && !$replace) {
  13. return $_SGLOBAL['db']->insert_id();
  14. }
  15. }
复制代码
第二个:source/do_register.php

找到:
  1. if(!$_POST['password'] || $_POST['password'] != addslashes($_POST['password'])) {
  2.                         showmessage('profile_passwd_illegal');
  3.                 }
  4.                 $username = $_POST['username'];
  5.                 $password = $_POST['password'];
  6.                 $email = $_POST['email'];
复制代码
在下面添加:
  1.                 $timestamp=time();
  2.                 $groupid=10;  
  3.                 $extcredits2=1;
  4.                 $timeoffset=9999;
  5.                 $regdate=$timestamp;
  6.                 $lastvisit=$timestamp;
  7.                 $lastactivity=$timestamp;
复制代码
找到:
  1. $setarr = array(
  2.                                 'uid' => $newuid,
  3.                                 'username' => $username,
  4.                                 'password' => md5("$newuid|$_SGLOBAL[timestamp]")//本地密码随机生成
  5. );
复制代码
在下面添加:
  1.                                 $setarr1 = array(
  2.                                 'uid' => $newuid,
  3.                                 'username' => $username,
  4.                                 'password' => md5("$newuid|$_SGLOBAL[timestamp]"),//本地密码随机生成
  5.                                 'groupid' =>$groupid,
  6.                                 'extcredits2' =>"$extcredits2", //注意这个字段代表论坛积分所用字段,根据自己实际情况填写。
  7.                                 'timeoffset'=>$timeoffset,
  8.                                 'regdate'=>$regdate,
  9.                                 'lastvisit'=>$lastvisit,
  10.                                 'lastactivity'=>$lastactivity
  11.                            );
  12.                            
  13.                            $setarr2 = array(
  14.                                 'uid' => $newuid
  15.                                 
  16.                            );
复制代码
找到:
  1. //更新本地用户库
  2.                         inserttable('member', $setarr, 0, true);
复制代码
在下面添加:
  1. inserttable_to_bbs('members', $setarr1, 0, true);
  2.                         inserttable_to_bbs('memberfields', $setarr2, 0, true);
复制代码
先声明:本文部分内容参照了论坛上原来一位仁兄的帖子,但是现在找不到原帖了,麻烦原帖作者报个到,顺便感谢一下!!
本方法在原来的基础上修正了注册后时间为1970年的问题。其余不变……

修改后测试正常,但存在以下问题:

1、第一次注册后,论坛需要二次登录。在第二次登录时即可同步。
2、论坛现实欢迎新用户处不能自动更新。需手工更新论坛缓存。

还望高手来解决这些问题。

上传已修改的2个文件。覆盖原文件即可(注意备份哦!!)


10-16:不好意思,原来的帖少写了一段代码,幸亏有Newbie的提醒。现在添加上来了。附件里的代码是正确的。不过有朋友遇到些小问题,可能是因为版本的差异,这种情况请不要用附件覆盖,按照方法修改即可。

$Id: function_common.php 8390 2008-08-06 05:50:42Z liguode $
$Id: do_register.php 8312 2008-08-04 01:37:47Z liguode $
我修改的是这2个版本的文件(文件顶部注释信息里),其它版本不知道会不会出现什么问题。

其实原理很简单,就是在注册的时候,UCH通过do_register.php向UCENTER中添加了用户信息,这时增加一段代码来向DZ的用户表里增加相同的用户信息。
poplong 发表于 2008-9-9 15:45:30 | 显示全部楼层
支持下!~~~
回复

使用道具 举报

杜皮厚厚 发表于 2008-9-9 15:46:05 | 显示全部楼层
太需要了, 添加测试看看.
回复

使用道具 举报

cocomilo 发表于 2008-9-9 15:48:51 | 显示全部楼层
(::13::) (::13::)
回复

使用道具 举报

 楼主| jemmy0329 发表于 2008-9-9 17:19:13 | 显示全部楼层
回复

使用道具 举报

zhenyusen 发表于 2008-9-9 17:20:42 | 显示全部楼层
顶一个
回复

使用道具 举报

杜皮厚厚 发表于 2008-9-9 17:38:48 | 显示全部楼层
希望有高手能解决楼主提出的2个问题.
回复

使用道具 举报

eqmz 发表于 2008-9-9 17:39:53 | 显示全部楼层
回复

使用道具 举报

seeiteam 发表于 2008-9-10 01:48:32 | 显示全部楼层
这个要顶

再问下,如果之前在UCH注册的用户未在论坛激活

如何将用户导入到BBS呢
回复

使用道具 举报

杜皮厚厚 发表于 2008-9-10 15:33:42 | 显示全部楼层
顶一下,让大家看看这个问题.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 05:59 , Processed in 0.191482 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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