本帖最后由 jemmy0329 于 2008-10-16 15:54 编辑
修改2个文件。
第一个: source/fucntion_common.php
找到- function tname($name) {
- global $_SC;
- return $_SC['tablepre'].$name;
- }
复制代码 在下面添加:- function bbsname($name) {
- global $_SC;
- return "cdb_".$name;
- }
复制代码 找到:- //更新数据
- function updatetable($tablename, $setsqlarr, $wheresqlarr, $silent=0) {
复制代码 在上面添加:- //向bbs添加数据
- function inserttable_to_bbs($tablename, $insertsqlarr, $returnid=0, $replace = false) {
- global $_SGLOBAL;
- $insertkeysql = $insertvaluesql = $comma = '';
- foreach ($insertsqlarr as $insert_key => $insert_value) {
- $insertkeysql .= $comma.'`'.$insert_key.'`';
- $insertvaluesql .= $comma.'\''.$insert_value.'\'';
- $comma = ', ';
- }
- $method = $replace?'REPLACE':'INSERT';
- $_SGLOBAL['db']->query($method.' INTO '.bbsname($tablename).' ('.$insertkeysql.') VALUES ('.$insertvaluesql.') ');
- if($returnid && !$replace) {
- return $_SGLOBAL['db']->insert_id();
- }
- }
复制代码 第二个:source/do_register.php
找到:- if(!$_POST['password'] || $_POST['password'] != addslashes($_POST['password'])) {
- showmessage('profile_passwd_illegal');
- }
- $username = $_POST['username'];
- $password = $_POST['password'];
- $email = $_POST['email'];
复制代码 在下面添加:- $timestamp=time();
- $groupid=10;
- $extcredits2=1;
- $timeoffset=9999;
- $regdate=$timestamp;
- $lastvisit=$timestamp;
- $lastactivity=$timestamp;
复制代码 找到:- $setarr = array(
- 'uid' => $newuid,
- 'username' => $username,
- 'password' => md5("$newuid|$_SGLOBAL[timestamp]")//本地密码随机生成
- );
复制代码 在下面添加:- $setarr1 = array(
- 'uid' => $newuid,
- 'username' => $username,
- 'password' => md5("$newuid|$_SGLOBAL[timestamp]"),//本地密码随机生成
- 'groupid' =>$groupid,
- 'extcredits2' =>"$extcredits2", //注意这个字段代表论坛积分所用字段,根据自己实际情况填写。
- 'timeoffset'=>$timeoffset,
- 'regdate'=>$regdate,
- 'lastvisit'=>$lastvisit,
- 'lastactivity'=>$lastactivity
- );
-
- $setarr2 = array(
- 'uid' => $newuid
-
- );
复制代码 找到:- //更新本地用户库
- inserttable('member', $setarr, 0, true);
复制代码 在下面添加:- inserttable_to_bbs('members', $setarr1, 0, true);
- 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的用户表里增加相同的用户信息。 |