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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] x2,dz7.2之pre_common_member表用户丢失,利用ucenter数据恢复【成功测试】

[复制链接]
韦奇科技 发表于 2012-4-1 13:59:37 | 显示全部楼层 |阅读模式
本帖最后由 韦奇科技 于 2012-4-1 14:47 编辑

先简单说一下吧,后台删除一个用户,勾选删除ucenter,结果不知道怎么回事把管理员都给删除了,丢失了很多数据。发现pre_common_member表和ucenter的数据根本不匹配。它和UC中的用户并不同步,我找了好多资料,没人能解决,求人不如求自己。终于测试成功,支持x2和dz7.2,自己可以根据代码衍生其他版本。

目前以知pre_ucenter_members数据表中的用户是完整的,问,如何把UC表中的用户完全同步到应用中的pre_common_member表中?代码x2的如下:


  1. <?php
  2. $dbserver ='localhost';   //此处改成数据库服务器地址
  3. $dbuser ='';   //此处写数据库用户名
  4. $dbpwd ='';   //数据库密码
  5. $dbname ='';   //数据库名称
  6. global $connect;
  7. $connect=mysql_connect($dbserver,$dbuser,$dbpwd) or die("无法连接数据库");
  8. @mysql_select_db($dbname,$connect);
  9. mysql_query('set names gbk');   //此处依据自己站点的字符集设置

  10. //从此行向下,默认的表前缀是pre_,请根据自己的表前缀进行修改,我uc表前缀是uc。

  11. $query = mysql_query("SELECT * FROM uc_members  WHERE  uid not in(select uid from pre_common_member) ",$connect);
  12. while($user = mysql_fetch_array($query)) {

  13.   //$password=$user[password];
  14.   echo $password=$user['username'];   //此处查看有多少用户得转
  15. echo "
  16. ";

  17.   mysql_query(" replace INTO  pre_common_member (uid,username,password,adminid,groupid,regdate,email) VALUES ('$user[uid]', '$user[username]', '$password','0','10','$user[regdate]','$user[email]') ");  mysql_query(" replace INTO  pre_common_member_field_forum (uid) VALUES ('$user[uid]')");
  18.   mysql_query(" replace INTO  pre_common_member_field_home (uid) VALUES ('$user[uid]')");
  19. }
  20. echo "完成";
  21. ?>
复制代码

7.2的解决方法。



代码如下

  1. <?php
  2. /****************************************/

  3. /****************************************/
  4. $dbserver ='localhost'; //此处改成数据库服务器地址
  5. $dbuser ='admin';//此处写数据库用户名
  6. $dbpwd ='admin';//数据库密码
  7. $dbname ='db';//数据库名称
  8. global $connect;
  9. $connect=mysql_connect($dbserver,$dbuser,$dbpwd) or die("无法连接数据库");
  10. @mysql_select_db($dbname,$connect);
  11. mysql_query('set names gbk');//此处依据自己站点的字符集设置
  12. //从此行向下,我默认uc的表前缀是rr_。x1的表前缀是cdb_
  13. //实际使用的时候要自己修改
  14. $query = mysql_query("SELECT * FROM rr_members WHERE uid not in(select uid from cdb_members) ",$connect);
  15. while($user = mysql_fetch_array($query)) {
  16. echo $password=$user['username'];   //此处查看有多少用户得转
  17. echo "
  18. ";
  19.    
  20. mysql_query(" replace INTO cdb_members (uid,username,password,adminid,groupid,regdate,email) VALUES ('$user[uid]', '$user[username]', '$password','0','10','$user[regdate]','$user[email]') ");
  21.    
  22. mysql_query(" replace INTO cdb_memberfields (uid,avatarwidth,avatarheight,buyercredit,sellercredit) VALUES ('$user[uid]','0','0','0','0')");

  23. }
  24. echo "finished";
  25. ?>
复制代码

但你看到 finished 就完成了
UC数据表里面的密码密值和DZ的不一样,但是依然能使用



Jayjr 发表于 2012-4-1 14:04:04 | 显示全部楼层
问题是,pre 文件目录是在哪里
回复

使用道具 举报

Jayjr 发表于 2012-4-1 14:05:57 | 显示全部楼层
哇靠,我刚刚看的时候还不用钱呢。刷新一下就要了、
回复

使用道具 举报

 楼主| 韦奇科技 发表于 2012-4-1 14:30:11 | 显示全部楼层
如果不会可以pm或者加本人有偿服务。
回复

使用道具 举报

1103602522 发表于 2012-4-1 14:31:12 | 显示全部楼层
表示很顶你  加油啊
回复

使用道具 举报

股商论坛 发表于 2012-4-1 14:36:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

skfjngt123 发表于 2012-4-1 15:29:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 韦奇科技 发表于 2012-4-1 17:02:12 | 显示全部楼层
回复

使用道具 举报

时光流逝而去 发表于 2012-4-6 07:56:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

abcnic 发表于 2012-4-6 08:17:56 | 显示全部楼层
期待免费 呵呵
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 11:08 , Processed in 0.029920 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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