动网Dvbbs v7.1.0sp1整合Oblog4.6

2008-01-09 10:47| 分类:tech| 1,366 次点击

幸好上次没答应在那家广告公司兼职做技术员 – - ! 现在发现自己手头的项目实在太多了。本来最能让我有兴趣的应该是一个.net的开发项目,涉及到其他网站的反馈接口和稍微有点像样的数据库操作,而且只有一个乱七八糟的ASP系统让我参考,全程都需要自己写代码,这让我感觉很有挑战性,而且最重要的是这个.net项目意义重大。可是今天看到前段时间做的另外一个项目,感觉甚不爽,只有一个论坛,连个主页都没有,而且不是在论坛根目录而是以一个/bbs作为论坛地址,所以感觉浪费了很多优质的外链,如果把根目录下的站点做起来的话,pr就不止是2了。

加上今天一时兴起,对升级网站有了兴趣,于是就打算搞一搞系统整合,为那个论坛加上多人blog系统,我用过techweb的博客,感觉很不错,所以就定下了用oblog了,oblog在asp多用户博客中的地位似乎就像是动网在asp论坛中的地位。

首先下载个Oblog4.6,把blog文件夹上传到wwwroot目录下。按如下修改:

1、修改数据库名为:oblog4.60.mdb(当然我都是假定的,你要修改的复杂一点,且不让人能下载)
2、修改conn.asp为:db =    “/blog/oblog4.60.mdb”

(注意,这里的数据库存放位置不像动网那样可以自由移动到根目录之上,比如与wwwroot同级的文件夹databases下(databases文件夹不公开web访问权限,所以数据库在databases文件夹下不用担心数据库被下载的问题,所以一般建议都是把access数据库放在这里)oblog在conn.asp的注释中很清楚的写到:“此处必须为以根目录开始,最前面必须为/号”,我开始时就是不信,动网都可以,oblog为何不行,后来证明的确不行,因为他的管理页面不像动网是根目录下的admin_login.asp文件,而是在admin目录下,conn.asp中的连接如果不是以绝对路径(”/”开头的路径就叫相对于根目录的绝对路径)写的话,等下include conn.asp的文件就有麻烦了,所以在blog下的页面可以连接数据库,但admin目录下的文件就都不行了。当然你可以重新建一个不同的conn.asp来被包含,但难保oblog不会有其他下级文件夹要使用到数据库,有可能得改很多。所以干脆还是把数据库放到wwwroot里再做些防下载的措施更方便,oblog和动网数据库结构的最大区别在于的,oblog是多用户的,每个用户都还有一个manage文件夹,所以也会有很多二级目录,所以数据库链接只能采取从根目录开始路径的方式)

3、访问:yourdomain/blog/ ,正常,但验证码没显示出来,google了下,原来是我没修改config.asp文件,于是修改config.asp中的一句为:Const blogdir       =    “/blog/”

4、访问:yourdomain/blog/ ,验证码也正常,但填写完提交后出现:

Microsoft VBScript 运行时错误
错误 ’800a0009′

下标越界: ‘oblog.CacheConfig’

/reg.asp,行 444

google了下好像是这个Oblog4.6 1月3号补丁的问题
http://bbs.oblog.cn/dispbbs.asp?boardid=93&ID=130942&replyID=130942
http://bbs.oblog.cn/dispbbs.asp?BoardID=93&replyID=180022&id=130948
我下载的就是这个1月3号打完补丁的版本,按第二篇文中说的做了,“初始化用户二级选项”了就正常了

5、因为要整合动网,所以修改了blog/api/Api_Config.asp,同时动网也进行了修改,修改了那几个api,参考下面这篇文章:
《最新版本的动易+动网+oBlog三站整合方法》
我暂时不管admin管理员账户,先把整合做好再说,把oblog的Api_Config.asp改为:

Const API_Enable = True     ‘是否整合,如果整合请设为True,否则为False。
Const oblog_Key = “API_TEST”    ‘网站key,必须与整合端的key一致。
Const strTargetUrls = http://yourdomain/bbs/dv_dpo.asp      ‘要整合的程序的完整URL(以“http://”开头,以接口文件的文件名结尾),如果有多个系统要整合,每个URL间用“|”分隔
Dim aUrls
aUrls=Split(strTargetUrls,”|”)
%>

dvbbs的dv_dpo\Api_Config.asp改为:

‘DvApi_Enable 是否打开系统整合(默认闭关: False ,打开:True )
Const DvApi_Enable    = True
‘DvApi_SysKey 设置系统密钥 (系统整合,必须保证与其它系统设置的密钥一致。)
Const DvApi_SysKey    = “API_TEST”
‘DvApi_Urls :整合的其它程序的接口文件路径。多个程序接口之间用半角”|”分隔。
Const DvApi_Urls    = http://yourdomain/blog/api/API_Response.asp
%>

6、测试注册,先是在oblog中注册一个testfromoblog,发现怎么也注册不上,总是提示“您提交时间过长或者过短,我想您如果不是机器的话,那就刷新下重新注册一下吧.”怎么刷新也没用,于是在动网中注册testfrombbs,但总会返回oblog的注册错误信息:“oblog45:没有填写密码提示”,我想起我的动网曾经做过简化注册的设置,就是去掉了填写密码提示问题和答案。所以才导致数据库里没有这些值,oblog就返回没填写的信息。

解决:开始时,我是想去掉填写Oblog的密码提示问题的步骤,但是看了这里这两句话:“这样改动就大了,关联的文件太多了,不仅仅是reg.asp文件,很多不能为空的数据库字段如果为空的话会出问题的”“注册页的每个选项都是跟数据库以及程序的功能相关联的,所以建议您最好不要修改,那样会牵涉到许多地方的改动”,我就打消了这个念头。

后来想到:既然数据库里不好没有值,那我就默认给数据库传一个固定的值,反正那个找回密码的功能一般用不到。而html中option的checked和input的value参数就可以直接提供默认值。于是:

1、修改oblog的reg.asp文件的下面三个地方:

<option  value=”"”">–请您选择–</option>” & vbcrlf

<option selected value=”"我的宠物名字?”">100*100=?</option>” & vbcrlf

<input value=”"10000″” name=”"answer”" type=”"text”" id=”"answer”"

这样子修改后,再给这些东西加一个width和height等于0的div,就可以隐藏了,注册时就默认是这么填表的,这样子数据库里就可以得到值。

不过,我这么改完后发现注册时oblog仍旧会返回那个提示。看来我之前是没有理解出API整合的真正含义,在oblog的reg.asp页面所做的,在论坛端登录时并不会用到这个页面,API整合的含义应该是在数据库中就进行交互的,所以我应该改的是论坛端的注册页面。

2、于是重新给论坛的reg.asp加上(本来下面的是被我删了的):

If Request.form(“quesion”)=”" Then
        ErrCodes=ErrCodes+”<li>”+template.Strings(11)
    Else
        quesion=Request.form(“quesion”)
    End If
    If Request.form(“answer”)=”" Then
          ErrCodes=ErrCodes+”<li>”+template.Strings(11)
    ElseIf Request.form(“answer”)=Request.form(“oldanswer”) Then
        answer=Request.form(“answer”)
    Else
        answer=md5(Request.form(“answer”),16)
    End If

并在论坛的模板页面按如下修改:

<TR>
<TD class=tablebody1><B>密码问题</B>:<BR>忘记密码的提示问题</TD>
<TD class=tablebody1>
<INPUT type=text size=30 name=quesion value=”100*100=”>
</TD></TR>
<TR>
<TD class=tablebody1><B>问题答案</B>:<BR>忘记密码的提示问题答案,用于取回论坛密码</TD>
<TD class=tablebody1>
<INPUT type=text size=30 name=answer value=”10000″>
</TD></TR>

修改之后在论坛端注册,同时oblog中也新增了一个用户,而且状态已经都是登录,所以可以实现同步登录和退出。但在oblog中注册,仍然提示“您提交时间过长或者过短,我想您如果不是机器的话,那就刷新下重新注册一下吧”,返回错误信息太笼统,不明所以。

还发现了几个问题:
1、论坛已经运行了一段时间,所以原有论坛中的用户数据oblog中是没有的,需要再进行数据转换,我在oblog和dvbbs的官方下载站上都找到一个转换程序:UserSynchro_v2.0.1026,可是这个程序是动易开发的,所以必须先转换到动易,再转换到oblog,我没有安装动易,想想太麻烦了,于是放弃用这个转换。
2、我选择的cms系统是创立(CreateLive)的,但因为当时做网站时美化存在问题且网站没有内容所以没有最终用上,也没有尝试过整合,可想而知若是加上一个创立,则有三个数据表完全不一样的数据库,而用户没有一个统一的管理页面,会很不友好。
3、之前整合系统时考虑过恒浪系统整合专家,试过,感觉页面很不错,也不难,但最终不知为何也不了了之,但肯定会比自己整合省事。

所以,最终还是打算过段时间用恒浪系统整合来整合,到时一起加上创立来做一个新闻系统,现在最迫切的并不是博客或者cms系统,而是网站的首页,而首页又需要内容来填充,没内容连首页都做不起来,内容需要不断的更新,这样子首页才能更新,搜索引擎会光顾的勤奋些,所以先把重点放在首页上吧。在多余的时间里构思出一个单页面主页。

相关文章

  • 没有相关文章

发表您的评论

您的昵称:
您的邮箱:(可选,不会被公布)
您的网站: