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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

Discuz!&天极网合作专栏“Discuz!应用技巧”正式上线了

[复制链接]
yishengxiao 发表于 2006-5-6 22:14:01 | 显示全部楼层
顶一下子
回复

使用道具 举报

killua_bo 发表于 2006-5-8 17:46:10 | 显示全部楼层
很好...支持!
回复

使用道具 举报

anshran 发表于 2006-5-8 18:22:23 | 显示全部楼层

只能支持,衣服够戗能得到了,纯支持一个

回复

使用道具 举报

5025488.net 发表于 2006-5-8 20:57:41 | 显示全部楼层
支持.
回复

使用道具 举报

絮儿 发表于 2006-5-8 23:02:31 | 显示全部楼层
支持
回复

使用道具 举报

tanweihai 发表于 2006-5-8 23:20:14 | 显示全部楼层
截止日期??
回复

使用道具 举报

songwl 发表于 2006-5-9 09:58:51 | 显示全部楼层

已刊登稿件展示:Discuz!4.1多论坛数据合并实战?

题目:Discuz!4.1多论坛数据合并实战?
作者:鱼鱼 阿贱
刊载:天极网
字数:1900;
将获得稿酬:95元;


刊载地址:http://homepage.yesky.com/290/2390290.shtml
全文粘贴:
--------------------------------------------------------------------------------
  Discuz!4.1多论坛数据合并实战——为了将资源集合在一处更好的进行推广,今天决定将定将1001pet(源论坛)和1001cate(源论坛)合并到娱乐-1001year(目标论坛)中合并到一起,组成一个新的论坛。前提:数据不能丢失、用户信息不能丢失。说干就干,现在开始吧。
为了将资源集合在一处更好的进行推广,今天决定将定将1001pet(源论坛)和1001cate(源论坛)合并到娱乐-1001year(目标论坛)中合并到一起,组成一个新的论坛。前提:数据不能丢失、用户信息不能丢失。说干就干,现在开始吧。
  工具:UltraEdit、PHPMYADMIN、MYSQL Administrator;
  技术支持论坛:discuz.dismall.com ;
  小贴士:为了保证数据的安全,鱼鱼建议大家将数据库保存在本地机器来操作,以免由于误操作造成对原论坛数据的损坏。
  第一步:备份1001Year和1001Cate论坛的数据。
  登录后台,将两个论坛(1001Year和1001Pet)的数据库分卷全部备份,并下载到本地。

  第二步:建立两个新论坛。
  在本地配置PHP+MYSQL环境,并安装UltraEdit、PHPMYADMIN、MYSQL、Administrator。然后新建两个论坛1001Year和1001Cate,并将两个数据库分别恢复到两个论坛中。
  1:数据库中主要表格的作用。
  cdb_buddys 好友信息表
  cdb_favorites 个人收藏信息表
  cdb_memberfields 用户扩展信息数据表
  cdb_members 用户基本信息数据表
  cdb_onlinetime 在线时间信息表
  cdb_polls 投票帖子信息表
  cdb_threads 主题帖子信息表
  cdb_threadsmod 主题操作记录信息表
  cdb_posts 帖子信息表
  cdb_ratelog 帖子评分记录信息表
  cdb_attachments 附件信息表
  cdb_forumfields 论坛扩展信息数据表
  cdb_forums 论坛基本信息表
  cdb_moderators 斑竹信息数据表
  cdb_pms 短信数据表
  cdb_forumlinks 友情连接数据表
  cdb_admingroups 管理组数据表
  cdb_usergroups 用户组数据表
  解释:在这里面,关键的就是cdb_members,cdb_memberfields,cdb_onlinetime,cdb_threads和cdb_posts。
  2:由于三个论坛都同,很多会员在三个论坛上都进行了注册,包括鱼鱼也是这样。但是会员中不允许有重名的,在合并中如果不注意此点将导致部分信息重叠丢失。还好,鱼鱼的三个论坛都不大,鱼鱼方法是在会员注册的地方,一个一个试重名,试到重名的就记录下来,然后进行对用户名略做修改,并通知用户。期望,Discuz!写一个专门用来检测重名的PHP程序,给予合并论坛中帮助。

  第三步:合并数据库。
  备份数据的时候,尽量只备份有内容帖子的数据。为了避免麻烦,把2级目录的东西都转到了1级论坛下,这样合并的时候,在目标论坛上就不用建立太多版块。
  1:在1001Year中建立1001cate和1001pet的板块,然后记录1001cate和1001pet在1001year论坛对应的fid(就是版块号,鼠标放到论坛首页各个版块的文字上面就可以在状态栏看到版块号了)。
  本步骤解释:为了帖子准确和不出现错误,必须将所有板块全部记录完整,为了帖子对应,一定要详细。
  2:因为还牵扯到会员重名的问题,毕竟我们都不会PHP只能手动操作,数据大的论坛最好找个高手写个程序检测。
  在检测完会员后,需要升级数据库,如下:
  CODE:
  [Copy to clipboard] <https://discuz.dismall.com/thread-281886-1-2.html###>
  UPDATE `cdb_members` SET `username` = '臭鱼old' WHERE `username` = '臭鱼';
  本步骤解释:这里是将会员里叫“臭鱼”的用户改名为“臭鱼old”,用户名任意,在此只是举例。
  3:
  1)数据库升级一:主题+帖子+会员+附件的升级。
  注意:这里所说的数据库升级,都是在原论坛进行的!因为要把数据合并到目标论坛,保持目标论坛数据不动。
  也就是上面所说的那些重要的表,代码如下:
  CODE:
  [Copy to clipboard]
  UPDATE cdb_memberfields SET uid=uid+1839;
  UPDATE cdb_members SET uid=uid+1839;
  UPDATE cdb_threads SET authorid=authorid+1839;
  UPDATE cdb_posts SET authorid=authorid+1839;
  UPDATE cdb_threads SET tid=tid+3522;
  UPDATE cdb_posts SET tid=tid+3522;
  UPDATE cdb_posts SET pid=pid+23397;
  UPDATE cdb_attachments SET tid=tid+3522;
  UPDATE cdb_attachments SET pid=pid+23397;
  UPDATE cdb_attachments SET aid=aid+8000;
  当然,这里你要根据你目标论坛的会员数、主题数、帖子数和附件数量进行设置,比如:
  CODE:
  [Copy to clipboard]
  UPDATE cdb_memberfields SET uid=uid+1839;
  根据我的目标论坛的会员数,最后一个UID是1839,这样升级的时候就将源论坛里的UID全部加1839。其他表内的数据也是根据这个来的,包括发贴量、主题数,都可以在你论坛看到。附件可以在后台查看ID号。
  2)数据库升级二:版块的升级。
  这里说的版块的升级,就是为了将源论坛的版块对应目标论坛新建的版块。代码如下:
  CODE:
  [Copy to clipboard]
  UPDATE cdb_threads SET fid=105 WHERE fid=41;
  UPDATE cdb_threads SET fid=106 WHERE fid=42;
  UPDATE cdb_threads SET fid=107 WHERE fid=27;
  UPDATE cdb_threads SET fid=109 WHERE fid=38;
  UPDATE cdb_threads SET fid=108 WHERE fid=34;
  UPDATE cdb_threads SET fid=110 WHERE fid=13;
  UPDATE cdb_threads SET fid=113 WHERE fid=17;
  UPDATE cdb_threads SET fid=112 WHERE fid=16;
  UPDATE cdb_threads SET fid=111 WHERE fid=15;
  UPDATE cdb_threads SET fid=115 WHERE fid=43;
  UPDATE cdb_threads SET fid=114 WHERE fid=19;
  UPDATE cdb_threads SET fid=116 WHERE fid=14;
  UPDATE cdb_threads SET fid=117 WHERE fid=23;
  UPDATE cdb_threads SET fid=118 WHERE fid=25;
  UPDATE cdb_threads SET fid=119 WHERE fid=26;
  UPDATE cdb_posts SET fid=105 WHERE fid=41;
  UPDATE cdb_posts SET fid=106 WHERE fid=42;
  UPDATE cdb_posts SET fid=107 WHERE fid=27;
  UPDATE cdb_posts SET fid=109 WHERE fid=38;
  UPDATE cdb_posts SET fid=108 WHERE fid=34;
  UPDATE cdb_posts SET fid=110 WHERE fid=13;
  UPDATE cdb_posts SET fid=113 WHERE fid=17;
  UPDATE cdb_posts SET fid=112 WHERE fid=16;
  UPDATE cdb_posts SET fid=111 WHERE fid=15;
  UPDATE cdb_posts SET fid=115 WHERE fid=43;
  UPDATE cdb_posts SET fid=114 WHERE fid=19;
  UPDATE cdb_posts SET fid=116 WHERE fid=14;
  UPDATE cdb_posts SET fid=117 WHERE fid=23;
  UPDATE cdb_posts SET fid=118 WHERE fid=25;
  UPDATE cdb_posts SET fid=119 WHERE fid=26;
  例如:UPDATE cdb_threads SET fid=105 WHERE fid=41;
  41是源论坛的fid号,105即目标论坛新建的同样版块的fid号。
  提示:以上的数据库升级,都是在源论坛操作,而不是在要合并到的目标论坛中操作。
  4:数据升级完以后该合并了,这里用到了UE。
  把合并完的数据,用4.1或者PHPMYADMIN的备份功能,将单独的表备份出来。例如:我先合并会员,就备份出cdb_memberfields表和cdb_members表。
  然后用UE打开,将源论坛中的数据复制到目标论坛的数据。例如:会员的合并。
  在源论坛的数据库中查找cdb_memberfields,下面的INSERT INTO的内容,直到-- 表的结构 `cdb_members`前,全都是。全部复制,然后粘贴到目标论坛的cdb_memberfields表的最后。其他表的操作同上。按照此操作,将帖子、主题、附件等信息全部合并。

  第四步:恢复数据。
  至此,所有数据已经合并成功。推荐用PHP MYADMIN或者MYSQLTOOL还原到目标论坛。
=================================================================
以上是鱼鱼和阿贱的 论坛“实战”记录,有同类经验的朋友不妨也写下来自己的感受,还有丰厚稿费可赚哦:)

[ 本帖最后由 songwl 于 2006-5-9 11:20 编辑 ]
回复

使用道具 举报

lily 发表于 2006-5-9 09:59:29 | 显示全部楼层

投稿中被录选的文章,恭喜!

Discuz!技巧:如何防止用户在论坛恶意灌水?
作者:唐文明
字数:560

--------------------------------------------------------------------------------

  Discuz!使用技巧:如何防止用户在论坛恶意灌水?

  1:问:如果有注册机器人在Discuz!论坛上批量注册用户怎么办?

  答:以管理员身份登入Discuz!后台,依次 “Discuz! 选项 -->安全控制--> 启用验证码”。将“新用户注册”选项前打勾,可有效防止注册机批量注册。

  另外还可以设置注册限制:“Discuz! 选项-->注册与访问控制-->IP 注册间隔限制(小时) ”在这里设置同一台电脑注册时间的间隔也可有效防止恶意注册。

  2:问:论坛如何防止论坛恶意批量发帖?

  答:以管理员身份登入Discuz!后台,在后台设置防止灌水时间:“Discuz! 选项-->安全控制-->发帖灌水预防”,在这里设置两个帖子发表的时间间隔。

  3:问:如何禁止论坛发表带有敏感字符的帖子?

  答:以管理员身份登入Discuz!后台设置方法:依次进入后台 - 帖子相关 - 词语过滤 在 不良词语 输入框中填写要过滤的字符。在 替换为 输入框中填写改铭感字符过滤后的替换字符,如 需要过滤 “TMD”为“TMD”则在 不良词语 输入框中填写 “TMD”,在 替换为 输入框中填写“TMD”即可。有没有办法让含有某个字符的帖子无法发表呢?可以的。只要在上面选项中的 替换为 输入框中填写 “{BANNED}”,则将该铭感字符设置为不可发表。

  4:问:如果发广告者在论坛各处发帖,管理员想一次性删除可以吗?

  答:当然可以。以管理员身份登Discuz!后台,选择“论坛维护-->批量删帖”,在“发帖用户名”一项中填写恶意发帖者ID,点击提交后出现该ID所发表的所有文章,全部打勾或有选择性的批量删除即可。

[ 本帖最后由 Lily 于 2006-5-9 10:03 编辑 ]
回复

使用道具 举报

leew 发表于 2006-5-9 23:37:36 | 显示全部楼层
占位
回复

使用道具 举报

linsie 发表于 2006-5-10 00:12:48 | 显示全部楼层
UP
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 11:53 , Processed in 0.029620 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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