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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[疑问] X1.5 X2解析Dvbbs8.2ac转换来的文字出现大量html代码,解析Discuz7.2的文字正常,何解

[复制链接]
idc549.com空间 发表于 2011-5-7 09:19:22 | 显示全部楼层 |阅读模式
本帖最后由 idc549.com空间 于 2011-5-7 09:36 编辑

2009年12月初旧论坛 dvbbs8.2 ac 转化到 Discuz7.2,Discuz7.2解析dvbbs8.2的文字时,除一些地方有少量html代码外,对大部份文字和样式解析正常。而从Discuz7.2升级到X系列,X系列解析文字时,对Dvbbs8.2来的文字解析出大量htnl格式代码,对Discuz7.2环境下形成的文字和格式解析正常。看下面两个地址的同一页面内容,比对从Discuz7.2升级到X1.5、X2的文字解析情况。

旧论坛 dvbbs8.2 ac 到 Discuz7.2的解析情况,文字解析正常,从#1--#1061,从#1062-后面都正常解析了。
http://www.zqyxf.com/zfbbs/viewthread.php?tid=11948&extra=page%3D4&page=71

Discuz7.2升级到X1.5,X2后的,解析#1-#1061这区间的dvbbs的文字有大量html样式代码:解析#1062楼以后由Discuz7.2环境下建立的文字就没有html样式代码。
http://test.zqyxf.com/forum.php?mod=viewthread&tid=11948&extra=&highlight=%B4%F3%B5%C0%B1%BE%CE%DE%B1%DF&page=71

由此看到明显解析区别了,X系列正常解析Discuz7.2环境形成的文字,对由Dvbbs8.2转换来的文字解析成完全的html代码混合文字,而这些文字在Discuz7.2环境下可正常显示的,请官方解决这个问题。


整个论坛有6年的大量积累下来的文字资料,如果无法解决此问题,将导致无法升级到X系列论坛。







baxter 发表于 2011-5-7 12:42:51 | 显示全部楼层
开启一下HTML代码的权限
回复

使用道具 举报

 楼主| idc549.com空间 发表于 2011-5-7 13:17:59 | 显示全部楼层
baxter 发表于 2011-5-7 12:42
开启一下HTML代码的权限

高手!开了html权限后就能正常显示了,但是带来另一个问题,注意: 选择“是”将不屏蔽帖子中的任何代码,将带来严重的安全隐患,请慎用,这个提示,有什么严重的安全隐患????不知道情况所以不知道怎么取舍。
回复

使用道具 举报

 楼主| idc549.com空间 发表于 2011-5-7 15:09:02 | 显示全部楼层
本帖最后由 idc549.com空间 于 2011-5-7 15:11 编辑

UPDATE `cdb_posts` SET `htmlon` = '1';
在discuz7.2 post数据表里加上了htmlon=1后,再升级dx2,检查pre_ucenter_post中有htmlon=1的表单,但后台板块不开启html依然是显示大量格式化代码,无法正确显示。

有两个说能够解决html代码问题的方法地址:(这种方法已经没用了)
https://discuz.dismall.com/forum.php? ... 1068847&pid=8426747

https://discuz.dismall.com/forum.php?mod=redirect&goto=findpost&ptid=1571287&pid=13305001
1.后台 论坛管理 板块中 关闭允许使用html代码
为了使以前的帖子不乱码 可以使用sql语句开启下以前帖子的html代码使用
2.后台 系统工具 数据库升级:
UPDATE `cdb_posts` SET `htmlon` = '1'
这是所有帖子开启使用html代码的sql,只针对已经发布的帖子
操作前请备份!!





回复

使用道具 举报

 楼主| idc549.com空间 发表于 2011-5-7 15:38:53 | 显示全部楼层
本帖最后由 idc549.com空间 于 2011-5-7 15:39 编辑

原论坛的帖子内容如果是以html形式发布的话,转过来后就需要开启html代码权限才可以正常显示
您可以通过到后台,系统工具,数据库升级,执行以下sql语句来开启以前所有帖子的html代码权限:
UPDATE `cdb_posts` SET `htmlon` = '1' ;
复制代码
其中cdb_修改为您的数据库表前缀


把pre_forum_post的htmlon都设置为1了,不行。
回复

使用道具 举报

 楼主| idc549.com空间 发表于 2011-5-7 15:40:50 | 显示全部楼层
本帖最后由 idc549.com空间 于 2011-5-7 15:43 编辑

Discuz!7.0 正式版对发 html 帖的权限进行了变更,极大的提高了安全性,并且使得 html 权限与其他权限的设置保持统一。

变更之后,开启 html 权限的必须步骤:
1.开启版块 html 权限;
2.开启用户组 html 权限。

废弃了原有的“只要开启版块 html 权限,所有会员都可以在该版块发 html 帖”的机制。

如果升级后原来已经开启 html 版块的帖子无法解析 html 代码,可以在论坛后台执行以下 SQL 修复:UPDATE cdb_forums f, cdb_posts p SET p.htmlon=p.htmlon|1 WHERE p.fid=f.fid AND f.allowhtml='1';
用这个修复原cdb数据库时,说影响为0.

UPDATE pre_forum_forum f, pre_forum_post p SET p.htmlon=p.htmlon|1 WHERE p.fid=f.fid AND f.allowhtml='1';
用这个修复dx2的数据库影响也是0.

回复

使用道具 举报

 楼主| idc549.com空间 发表于 2011-5-7 15:55:27 | 显示全部楼层
前论坛开启了html发帖,转换为Discuz后,点编辑后,discuz代码模式下,就是以代码的形式显示帖子内容,所以html代码就显示出来了。
回复

使用道具 举报

beijing200808 发表于 2011-5-9 10:29:35 | 显示全部楼层
discuz中无法解析html代码一般有两方面的原因:
1、用户组和板块权限设置
2、自定义的discuz代码
回复

使用道具 举报

 楼主| idc549.com空间 发表于 2011-5-10 19:21:19 | 显示全部楼层
beijing200808 发表于 2011-5-9 10:29
discuz中无法解析html代码一般有两方面的原因:
1、用户组和板块权限设置
2、自定义的discuz代码

1、打开板块html权限,不打开用户权限,此时有什么风险?(基本上打开板块html权限,显示就正常了)
2、自定义的discuz代码,是指discuz用的是ubb代码,当编辑由其他程序转换来的html文字时就把html格式化代码当作内容输出了,是这个意思吗
回复

使用道具 举报

beijing200808 发表于 2011-5-11 09:40:54 | 显示全部楼层
idc549.com空间 发表于 2011-5-10 19:21
1、打开板块html权限,不打开用户权限,此时有什么风险?(基本上打开板块html权限,显示就正常了)
2、 ...

1、允许使用html就存在风险的。不过程序也对内容有所处理,一般不会出问题。
2、这种情况是说自己在后台定义的discuz代码可能有问题,显示的时候没法正常解析导致的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 03:36 , Processed in 0.028693 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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