html缩小网页时版块乱跑,解决动网论坛最后发表显示代码的问题(或导致首页排版错乱)...

动网论坛作为一个优秀的ASP论坛程序,两年前曾是千千万万站长的选择。虽然动网论坛官方停止了更新,但是由于我一个站用的是动网论坛,转换的话闲麻烦,而且之前做了不少个性化修改,再者我用着感觉也挺快的,也能够解决需要(毕竟也是一个曾经优化的论坛程序),所以就不打算更换了。

但是动网论坛(V7.1)程序有一个bug,就是首页每个版块的最后发表处经常显示一些UBB代码出来,近日更发现首页排版错乱,查了原因居然是一段最后发表处的没显示完整的带有引号的HTML代码所致。

通过一番查找,根源在于论坛在过滤最后发表的帖子(回复或主题的标题)内容时对HTML代码的剔除存在漏洞,而且并没有进行UBB代码的剔除。找到了根源,于是动手解决起来就容易了。

1、优化剔除HTML标记的Function

打开论坛根目录 inc/Dv_ClsMain.asp 这个文件,查找 Public Function Replacehtml(Textstr) ,把整个Function(如下代码)替换成我优化后的Function.

'去掉HTML标记

Public Function Replacehtml(Textstr)

Dim Str,re

Str=Textstr

Set re=new RegExp

re.IgnoreCase =True

re.Global=True

re.Pattern="]*)>"

Str=re.Replace(Str, "")

Set Re=Nothing

Replacehtml=Str

End Function

优化后的代码:

'去掉HTML标记

Public Function Replacehtml(Textstr)

Dim Str,re

Str=Textstr

Set re=new RegExp

re.IgnoreCase =True

re.Global=True

re.Pattern="]*)>"

Str=re.Replace(Str, "")

'风清扬添加2行 去掉不完整的HTML标记 < > 和 引号

re.Pattern="]*)"

Str=re.Replace(Str, "...")

re.Pattern="[<>""\']"

Str=re.Replace(Str, "")

Set Re=Nothing

Replacehtml=Str

End Function

2、添加一个新的Function用于剔除UBB代码

在第一步Function的后面添加一个Function,用于剔除UBB代码,源代码如下,直接复制过去就行了,不过注意不要放在Function与End Function之间了。

'风清扬添加去掉以[ ]表示的UBB论坛代码

Public Function ReplaceUbb(Textstr)

Dim Str,re

Str=Textstr

Set re=new RegExp

re.IgnoreCase =True

re.Global=True

re.Pattern="\[(.[^>]*)\]"

Str=re.Replace(Str, "")

re.Pattern="\[(.[^\]]*)"

Str=re.Replace(Str, "...")

re.Pattern="[\[\]]"

Str=re.Replace(Str, "")

Set Re=Nothing

ReplaceUbb=Str

End Function

3、修改admin_posting.asp文件

打开论坛根目录的 admin_posting.asp 文件 ,查找

Lasttopic=replace(left(Dvbbs.Replacehtml(rs(0)),15),"$","")

替换成

Lasttopic=replace(left(Dvbbs.ReplaceUbb(Dvbbs.Replacehtml(rs(0))),15),"$","") '风清扬修改

这样修改以后,应该是以后发表贴子(回复或主题都行),该帖子所在的版块的最后发表处就会正常显示文字,而不会含有HTML或者UBB代码了。

4、修改后台重计论坛数据的文件,手动一次性修复所有版块的问题

打开 admin/Update.asp 文件,查找

LastPost=Replace(Dvbbs.Replacehtml(Trs(0)&""),"'","''")

替换成

LastPost=Replace(Dvbbs.ReplaceUbb(Dvbbs.Replacehtml(Trs(0))&""),"'","''")  '风清扬修改

改完后,进入动网论坛管理后台,依次找到论坛管理左侧菜单中的 论坛管理 》 重计论坛数据和修复,点击进入后,再在右边的窗口点击 更新分版面数据 按钮,大功告成!

后话:虽然现在很多人抛弃了动网论坛,要么用Discuz!,要么用Phpwind。我想说的是,任何程序都有优点,也都有缺点。运营一个网站,没有必要非得采用最流行的程序,更没有必要非得保持你的程序是最新版本。最新的并不一定是最好的,用得习惯顺手才是最好。再说,老是跟着官方去更新,很累!转换是个很麻烦的问题,更不用说你自己如果做了一些修改的话,兼容性又是一个很大的问题了。所以我觉得,够用就行,没有必要老是升级,除非确实需要新的功能,或者,闲得没事干!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值