PHP实现合并discuz用户

 更新时间:2015年08月05日 12:11:10   投稿:hebedich  
本文给大家分享的是如何实现整合DISCUZ用户的方法,第一种比较直接,适合只保留一个论坛的情形,第二个比较完善,适合两个论坛同时运营,小伙伴们根据自己的情况,自由选择。

本文实例讲述了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>OK:$oknum <br>errornum:$errnum <br> error:<br>"; 
print_r($arrayerr); 
mysql_close($link); 

我们再来看下使用UC整合的方法

这两天一直在2个discuz的ucenter和会员系统;经过我的不懈努力;终于整合完成;整合过后实现功能如下;

两个discuz系统共用同一个ucenter;    //实现方法:

两个discuz系统共用同一个会员系统;//解决方法在后面;

先整合ucenter;

先完整安装一个discuz系统;进入ucenter;添加应用:

点击安装:一直下一步到下面

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

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论坛会员的方式,个人比较喜欢第二种,毕竟第一种还是有些缺陷的。

相关文章

  • PHP结构型模式之装饰器模式

    PHP结构型模式之装饰器模式

    这篇文章主要介绍了PHP结构型模式之装饰器模式,装饰器模式是一种结构型模式,它允许你在运行时为一个对象动态地添加新的行为,而不影响其原始的行为。这种类型的设计模式属于结构型模式,它结合了透明性和多样性
    2023-04-04
  • PHP实现对站点内容外部链接的过滤方法

    PHP实现对站点内容外部链接的过滤方法

    这篇文章主要介绍了PHP实现对站点内容外部链接的过滤方法,可实现针对外部链接增加rel="nofollow"的功能,有助于网站SEO建设以及避免不必要的损失,是非常实用的技巧,需要的朋友可以参考下
    2014-09-09
  • php开启多进程的方法

    php开启多进程的方法

    这篇文章主要介绍了php开启多进程的方法,实例分析了php线程的使用技巧,需要的朋友可以参考下
    2015-03-03
  • php 截取GBK文档某个位置开始的n个字符方法

    php 截取GBK文档某个位置开始的n个字符方法

    下面小编就为大家带来一篇php 截取GBK文档某个位置开始的n个字符方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 通过Email发送PHP错误的方法

    通过Email发送PHP错误的方法

    这篇文章主要介绍了通过Email发送PHP错误的方法,实例分析了php错误的读取及通过php发送Email的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • PHP之sprintf函数用法详解

    PHP之sprintf函数用法详解

    这篇文章主要介绍了PHP中sprintf函数用法,以实例形式详细分析了sprintf函数格式化输出的常见用法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • 解析php中session的实现原理以及大网站应用应注意的问题

    解析php中session的实现原理以及大网站应用应注意的问题

    本篇文章是对php中session的实现原理以及大网站应用应注意的问题进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php实现异步将远程链接上内容(图片或内容)写到本地的方法

    php实现异步将远程链接上内容(图片或内容)写到本地的方法

    这篇文章主要介绍了php实现异步将远程链接上内容(图片或内容)写到本地的方法,涉及php基于curl进行远程文件传输的相关操作技巧,需要的朋友可以参考下
    2016-11-11
  • 解析php多线程下载远程多个文件

    解析php多线程下载远程多个文件

    本篇文章是对php多线程下载远程多个文件的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php实现Session存储到Redis

    php实现Session存储到Redis

    这篇文章主要介绍了php实现Session存储到Redis的方法,php Session可以保存到文本或者内存、还有数据库,本文讲的是存到Redis的方法,
    2015-11-11

最新评论