找回密码
 立即注册
查看: 51|回复: 0

PHP实现合并discuz用户

[复制链接]
  • TA的每日心情
    开心
    5 天前
  • 签到天数: 62 天

    [LV.6]常住居民II

    200

    主题

    18

    回帖

    2553

    积分

    管理员

    积分
    2553
    发表于 2024-12-13 13:10:51 | 显示全部楼层 |阅读模式
    本文实例讲述了PHP合并discuz用户脚本的方法。分享给大家供大家参考。具体如下:
    前几天遇到一个需要将两个discuz合并的项目,一个用户级别在12万左右,一个是1万8.不用说肯定是扔了1万8的,留下12万的。开始觉得不好处理,数据表都是关联,新注册一个用户,有8个表增加记录了,还没看有没有其他表有修改记录的可能性。当时觉得一时半会儿也理不清那些表,就搜索了一下,搜到了discuz tool.但是只能导10万以内的,于是就只能自己尝试了,后来考虑,我直接在关键表插入一条记录如何,其他表在用户操作的过程中没准就自动补齐的相关数据了,于是就试着导出原来的1万8用户,然后写了个PHP脚本直接将这1万8用户写入的uncenter的memeber表里。测试了一下还OK。遗憾的是用户积分啥的都没过去,只是保留了用户的用户名和密码。
    关键步骤:
    1.导出打算不要的那个系统的uncenter member数据库成sql文件。
    2.运行脚本。
    声明:本脚本只提供思路,请使用前提前备份好数据,如数据丢失与作者无关。(代码简单,勿喷)
    set_time_limit(0); $link = mysql_connect('localhost', 'ngjc', 'ohFt6yhHYvt5')  or die('Could not connect: ' . mysql_error()); echo 'Connected successfully'; mysql_select_db('ngjc') or die('Could not select database'); require "sql.php";//此处换成导出的sql文件 $arrayerr=array(); $oknum=0; $errnum=0; mysql_query("SET NAMES utf8"); foreach($sqlarr as $sql) {  if(!mysql_query($sql))  {   $arrayerr[]=$sql;$errnum++;  }  else  {   $oknum++;  } } echo "<pre>OKoknum <br>errornumerrnum <br> error:<br>"; print_r($arrayerr); mysql_close($link); 我们再来看下使用UC整合的方法
    这两天一直在2个discuz的ucenter和会员系统;经过我的不懈努力;终于整合完成;整合过后实现功能如下;
    两个discuz系统共用同一个ucenter;    //实现方法:
    两个discuz系统共用同一个会员系统;//解决方法在后面;
    先整合ucenter;
    先完整安装一个discuz系统;进入ucenter;添加应用:
    1.jpg

    点击安装:一直下一步到下面
    2.jpg

    如果点击出现您必须解决以上问题,安装才可以继续
    请返回输入 UCenter 的IP地址:如果不出意外进入下一步
    3.jpg

    ucenter整合完毕;可以实现同时登陆;同时退出;只是第一次需要激活;

    打开第二个分系统config/下的config_global.php;

    $_config['db']['1']['tablepre'] = chuzi_';下添加$_config['db']['2']['tablepre'] = it_
    第二个分系统打开source\class\db文件下的db_driver_mysql.php;
    在第 34行 $this->tablepre = $config['1']['tablepre'];下面添加       $this->tableprechu = $config['2']['tablepre'];
    第112行  return $this->tablepre.$tablename;修改成下面
    if(preg_match("/^common_member(.*)/i",$tablename)|| preg_match("/^home(.*)/i",$tablename) || in_array($tablename, array('common_credit_rule_log')))    {      return $this->tableprechu .$tablename; //tableprechu与上面修改对应就行;    }else{    return $this->tablepre.$tablename;    }以上就是小编给大家总结的2种整合DZ论坛会员的方式,个人比较喜欢第二种,毕竟第一种还是有些缺陷的。

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|软媒源码阁 |网站地图

    GMT+8, 2025-5-14 03:22 , Processed in 0.240522 second(s), 24 queries .

    Powered by RuanmeiHome X3.5

    Copyright © 2014-2025, 软媒源码阁

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