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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[经验] BBSXP 2008转换为Discuz 7.2记录

[复制链接]
tjhxyjtjh 发表于 2010-1-25 20:27:33 | 显示全部楼层 |阅读模式
本帖最后由 tjhxyjtjh 于 2010-01-25 20:33 编辑

bbsxp2007sql-70uc方案直接转换后发现好多问题,看了一下改动部分代码解决,每处修改都针对一个bbsxp2007sql-70uc直接转换后出现的问题。

  修改bbsxp2007sql-70uc方案的step_2.php【解决用户密码问题】

        $ucpw=convertucpw($user['userpass']);
        改为
        $ucpw=convertucpw($user['userpassword']);

  修改bbsxp2007sql-70uc方案的step_3.php【解决版区乱码问题】

        $name                        =        cutstr(htmlspecialchars(trim(@strip_tags($forum['forumname']))), 50);
        改为
        $name                        =        cutstr(htmlspecialchars_decode(trim(@strip_tags($forum['forumname']))), 50);

  修改bbsxp2007sql-70uc方案的step_4.php【解决丢失帖子问题,主体标题乱码问题】

        $query = $db['source']->query("SELECT * FROM {$source_tablepre}Threads WHERE FormID BETWEEN $start AND $end") or dexit("检索数据表 '{$source_tablepre}Threads' 错误!<br>请将主题表 '{$source_tablepre}Threads' 字段类型为 nText 的改为 Text 类型。", 'mssql');
        改为
        $query = $db['source']->query("SELECT * FROM {$source_tablepre}Threads WHERE threadid BETWEEN $start AND $end") or dexit("检索数据表 '{$source_tablepre}Threads' 错误!<br>请将主题表 '{$source_tablepre}Threads' 字段类型为 nText 的改为 Text 类型。", 'mssql');

        $subject                =        cutstr(htmlspecialchars(trim(@strip_tags($t['topic']))), 78);
        改为
        $subject                =        cutstr(htmlspecialchars_decode(trim(@strip_tags($t['topic']))), 78);

  修改bbsxp2007sql-70uc方案的step_5.php【解决显示threadid错误信息问题】

        $query = $db['source']->query("SELECT * FROM {$source_tablepre}postattachments WHERE threadid <> 0 AND upfileid BETWEEN $start AND $end") or dexit("检索数据表 '{$source_tablepre}postattachments' 错误!<br>请将附件表 '{$source_tablepre}postattachments' 字段类型为 nText 的改为 Text 类型。", 'mssql');

        改为

        $query = $db['source']->query("SELECT * FROM {$source_tablepre}postattachments WHERE upfileid BETWEEN $start AND $end") or dexit("检索数据表 '{$source_tablepre}postattachments' 错误!<br>请将附件表 '{$source_tablepre}postattachments' 字段类型为 nText 的改为 Text 类型。", 'mssql');


        $pid                 =         $a['threadid'];
        改为
        $pid                 =         $a['postid'];

  
   修改bbsxp2007sql-70uc方案的step_6.php【解决显示threadid错误信息问题,pid为空问题,HTML不能解析问题,BBCode不解析问题】

        validid('threadid', $tablearray[0], '');
        改为
        validid('postid', $tablearray[0], '');

        $query = $db['source']->query("SELECT * FROM $posttable WHERE threadid BETWEEN $start AND $end") or dexit("检索数据表 '$posttable' 错误!<br>请将帖子表 '$posttable' 字段类型为 nText 的改为 Text 类型。", 'mssql');
        改为
        $query = $db['source']->query("SELECT * FROM $posttable WHERE postid BETWEEN $start AND $end") or dexit("检索数据表 '$posttable' 错误!<br>请将帖子表 '$posttable' 字段类型为 nText 的改为 Text 类型。", 'mssql');
       
        pid                        =        $p['id'];
        改为
        pid                        =        $p['postid'];

        $htmlon                        =        @strip_tags($message) == $message ? 0 : 1;
        改为
        $htmlon                        =        1;

        $att = $db['source']->query("SELECT count(*) sum FROM {$source_tablepre}postattachments WHERE threadid = '$tid'");
        改为
        $att = $db['source']->query("SELECT count(*) sum FROM {$source_tablepre}postattachments WHERE postid = '$pid'");

        $bbcodeoff                =        -1;
        改为
        $bbcodeoff                =        0;

        添加
        $message                =         htmlspecialchars_decode($message);               
        $message                =         preg_replace('|'.CHR(10).'|', '<br />', $message);

        $smileyoff                =        -1;
        改为
        $smileyoff                =        0;

        $attachment                =        $p1['sum'] > 0  && $p['parentid'] == 0 ? 1 : 0;
        改为
        $attachment                =        $p1['sum'] > 0 ? 1 : 0;





升级后 html 帖无法解析,开启 html 权限的必须步骤:1).开启版块 html 权限;2).开启用户组 html 权限。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

2

查看全部评分

 楼主| tjhxyjtjh 发表于 2010-1-25 20:30:01 | 显示全部楼层
忘记说了BBSXP 2008 Access版本

1.Access转成Ms sql server(DTS)

2.修改所有表中的字段类型为ntext的改为text
回复

使用道具 举报

蓝豆 发表于 2010-1-26 14:10:03 | 显示全部楼层
感谢分享。
回复

使用道具 举报

guanjingla 发表于 2010-1-26 14:36:37 | 显示全部楼层
我试一下啊。。。
回复

使用道具 举报

12153556 发表于 2010-1-26 16:29:40 | 显示全部楼层
bbsxp2007sql-70uc方案直接转换后发现好多问题,看了一下改动部分代码解决,每处修改都针对一个bbsxp2007sq ...
tjhxyjtjh 发表于 2010-01-25 08:27 PM



   
回复

使用道具 举报

itall 发表于 2010-1-27 11:57:42 | 显示全部楼层
本帖最后由 itall 于 2010-01-27 12:01 编辑
  修改bbsxp2007sql-70uc方案的step_2.php【解决用户密码问题】

        $ucpw=convertucpw($user['userpass']);
        改为
        $ucpw=convertucpw($user['userpassword']);



这个适合bbsxp2007sql-7.2uc的转换程序吗?我现在的版本是7.2uc。

本人已经成功的将论坛从bbsxp2007 sql换到了dz7.2,
目前就剩下用户无法登陆(因为bbsxp的密码算法是SHA1的)
求用户不能登录解决方案,谢谢!

我用的是官方的转换程序转换的。bbsxp2007 sql有两种加密方式,在后台可以选择,一种是MD5(好象是16位的加密方式,长度是32位),另一种是sha1的加密方式,长度是40位。我的BBSXP2007用的是sha1加密方式。

用官方的转换程序转换的时候,MD5的加密方式可以正常转换过来,转换过来的长度是32位,并且DZ论坛里可以正常登录;sha1的加密方式转换过来的密码长度也是32位,但是不能登录。

比如:
          用sha1加密方式加密的密码admin888结果为EAEB8C1250F18A13B72C212CEB85F4CFC100F817(BBSXP2007的sha1加密方式,长度40位)
          用MD5  16位的加密的密码admin888结果为7FEF6171469E80D32C0559F88B377245(BBSXP2007的MD5加密方式,长度32位)
          用MD5  32位的加密的密码admin888结果为735d83ea7a1c6dc7e41c162d2adb2bd8(DZ7.2的MD5加密方式,长度32位)
回复

使用道具 举报

disfelix 发表于 2010-2-4 12:40:40 | 显示全部楼层
菜鸟飞过:
到底该如何转换呢?我是安装了sql server2000,然后用CooSel2.0 CreateSQL v1.06将bbsxp2008的access转进sql server,修改了now()为getdate(),修改了ntext为text,然后就不知道该如何了。
官方提供的转换工具是不是要在本地安装web php服务器,然后再转换吗?请求大侠指点。
(可惜我本地php到现在无法成功配置。)
回复

使用道具 举报

蓝豆 发表于 2010-2-4 15:25:24 | 显示全部楼层
要在本地安装web php服务器
回复

使用道具 举报

漫天飞舞 发表于 2010-2-4 15:53:24 | 显示全部楼层
https://discuz.dismall.com/thread-650149-1-3.html可以参考下这个配置,配置好后用bbsxp2007的子体应该就行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-3 19:26 , Processed in 0.106444 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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