星战 公主:ASP:分析并解决一小段函数,谢谢诸位!

来源:百度文库 编辑:高校问答 时间:2024/05/08 11:39:31
问题:html代码提交前,制作的表格看起来蛮漂亮的,整体非常美观;经过htmlencode2函数转换保存数据库中,再显示给用户,现象是:以前制作的表格变的非常大,布局非常不合理(即:行与行、列与列的间隙非常大);

我的步骤如下:
客户端写入(即:后台系统):
在网页框内输入标准的HTML内容,提交后,经过htmlencode2函数转换存入数据库,代码如下:
rs("nr")=htmlencode2(trim(request.form("nr")))

客户端显示(即:前台网页):
用户读取的时候是直接调用代码,如:< % =trim(rs("nr")) % >显示
(显示后,行与行、列与列的间隙非常大)

htmlencode2函数内容:
function HTMLEncode2(fString)
fString = Replace(fString, CHR(13), "")
fString = Replace(fString, CHR(10) & CHR(10), "</P><P>")
fString = Replace(fString, CHR(10), "<BR>")
HTMLEncode2 = fString
end function

请问这个htmlencode2函数是什么作用?
如何修改后:
1.网站的ASP程序不受客户端的威胁
2.HTML代码提交前与提交后的效果一样(意思:提交前制作的表格漂亮,提交后显示给用户照样漂亮!)?

望能详细分析,再次感谢!
代码编写好后,粘到后台文本框中,使用fString = Replace(fString, CHR(10), "<BR>")提交 ,所有换行的代码,均增加一个< br >,代码转换后,这是导致表格的行与行、列与列产生巨大缝隙的关键;如把<br>更换成空或其他代码,前台网页直接显示“代码”了。这个代码有这么重要么

首先把你要提交的HTML代码复制到一个文本里面

然后把提交以后数据库里面的代码复制到一个文本里面进行比较

看看哪里出问题了

你的问题估计把下面的函数改成

htmlencode2函数内容:
function HTMLEncode2(fString)
fString = Replace(fString, CHR(13), "")
fString = Replace(fString, CHR(10) & CHR(10), "</P><P>")
fString = Replace(fString, CHR(10), "<BR>")
fString = Replace(fString, CHR(62), ">")
fString = Replace(fString, CHR(60), "<")
HTMLEncode2 = fString
end function

应该可以解决~
但是如果你需要支持HTML又要不受客户端任何威胁的话不建议这样做,建议自己设定自己的程序所支持的UBB和对代码进行严格过滤,仅允许您所支持的HTML标记出现。
能力有限,只能到这咯~

fString = Replace(fString, CHR(10) & CHR(10), "</P><P>") 换成
fString = Replace(fString, CHR(10) & CHR(10), "<br>")