■■求助:有没有通用的服务器端特殊字符过滤函数???[解决立即给分]■■

Gateman 2005-10-19 03:11:33
表单提交过程中:<textarea name="x" style="display:none"></textarea>
出现错误:
Microsoft JET Database Engine 错误 '80040e14'
语法错误 在查询表达式 ''<HEAD> <STYLE type=text/css>body,td,div,span{font-family:"宋体";font-size:12px;Color:#000000;}</STYLE> <META content="MSHTML 6.00.2800.1522" name=GENERATOR></HEAD> <BODY> <P><html><BR><head><BR><title>带Checkbox的列表框 &' 中。

/manage/ttt/act_article.asp,行17
提交内容
<html>
<head>
<title>带Checkbox的列表框</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<style>
body,td{font-size:12px;color:#000000;}
.checkbox{width:15px;height:15px;}
.cked{
margin:1px;padding:2px;width:100%;display:block;background-color:highlight;color:highlighttext;
}
.nock{
margin:1px;padding:2px;width:100%;display:block;
}
</style>
<body>

<SCRIPT LANGUAGE="JavaScript">
<!--
function HtmlEncode(text){
return text.replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g, '>');
}
function _checkbox(name,str,defv){
//haiwa@2005-8-17
//http://www.51windows.net
var arr=str.split("^");
var ck="",bc="";
for(var i=0;i<arr.length;i++){
var thisarr=arr.split("@=");
if (thisarr[0].length>0){
var t=(thisarr.length==2)?thisarr[0]:arr;
var v=(thisarr.length==2)?thisarr[1]:arr;
if((","+HtmlEncode(defv).toLowerCase()+",").replace(/ ,/g, ',').indexOf(","+v+",")!=-1){ck=" checked";cls="cked";}
else{ck="";cls="nock";}
var thisstr="<label class=\""+cls+"\" for=\"i_"+name+"_"+i+"\" id=\"l_"+name+"_"+i+"\">";
thisstr+="<input class=\"checkbox\" onpropertychange=\"document.getElementById('l_"+name+"_"+i+"').className=(document.getElementById('i_"+name+"_"+i+"').checked)?'cked':'nock';\" onclick=\"document.getElementById('l_"+name+"_"+i+"').className=(document.getElementById('i_"+name+"_"+i+"').checked)?'cked':'nock';\" type=\"checkbox\""+ck+" name=\""+name+"\" id=\"i_"+name+"_"+i+"\" value=\""+HtmlEncode(v)+"\" \/> ";
thisstr+=HtmlEncode(t)+"</label>";
document.write(thisstr);
}
}
}
function _getv(o){
var allvalue="";
if(typeof(o)=="undefined"){return "";}
if (typeof(o.length)=="undefined"){
if(o.checked){return o.value+ ",";}else{return "";}
}
for(var i=0;i<o.length;i++){
if(o.checked){
allvalue +=o.value+",";
}
}
return allvalue;
}
function _setv(o,defv){
var allvalue=(","+HtmlEncode(defv).toLowerCase()+",").replace(/ ,/g, ',');
for(var i=0;i<o.length;i++){
var v = o.value;
o.checked=(allvalue.indexOf(","+v+",")!=-1)
}
return allvalue;
}
function _sl(o,b){
for(var i=0;i<o.length;i++){
o.checked = b
//if(o.checked!=b){o.click();}
}
}
//-->
</SCRIPT>
<form method="post" name="myform" action="?">
<table border="0" width="200">
<tr>
<td><div style="width:180px;height:150px;overflow:auto;border: 2px inset #FFFFFF;">
<SCRIPT LANGUAGE="JavaScript">
<!--
_checkbox("city","北京^山东^安徽^重庆^福建^甘肃^广东^广西^贵州^海南^河北^黑龙江^河南^湖北^湖南^内蒙古^江苏^江西^吉林^辽宁^宁夏^青海^山西^陕西^上海^四川^天津^西藏^新疆^云南^浙江^香港^澳门^台湾","北京,山东")
//-->
</SCRIPT></div>
</td>
</tr>
<tr>
<td>
<button onclick='_sl(document.myform.city,true);'>全选</button>
<button onclick='_sl(document.myform.city,false);'>全不选</button>
<button onclick='_setv(document.myform.city,"甘肃,广东");'>set值</button>
<button onclick='alert(_getv(document.myform.city));'>get值</button>
</td>
</tr>
<tr>
<td><div style="width:180px;height:120px;overflow:auto;border: 2px inset #FFFFFF;">
<SCRIPT LANGUAGE="JavaScript">
<!--
_checkbox("WebSite","Google.com@=http://www.google.com^Blueidea.com@=http://www.blueidea.com^51windows.Net@=http://www.51windows.net","http://www.51windows.net")
//-->
</SCRIPT></div>
</td>
</tr>
<tr>
<td>
<button onclick='_sl(document.myform.WebSite,true);'>全选</button>
<button onclick='_sl(document.myform.WebSite,false);'>全不选</button>
<button onclick='_setv(document.myform.WebSite,"http://www.google.com");'>set值</button>
<button onclick='alert(_getv(document.myform.WebSite));'>get值</button>
</td>
</tr>
<tr>
<td align="center"><button onclick='document.myform.reset();'>重置表单</button> </td>
</tr>
</table>
</form>
</body>
</html>
有没有过针对这样提交文本的特殊字符过滤函数,然后显示的时候再转换过来???
...全文
160 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gateman 2005-10-20
  • 打赏
  • 举报
回复
我下载了NBArticle_200_RC1_1.rar试试还是不行,本问题还没有解决!请高手入座呀!!
lawdoor 2005-10-19
  • 打赏
  • 举报
回复
andyguo370贴的是:
NBArticle/include/cls_public.asp (506--632行代码)
至于出错原因请下载:NBArticle_200_RC1_1.rar看看吧

lawdoor 2005-10-19
  • 打赏
  • 举报
回复
很久没来csdn了,这个问题不错继续讨论,mark一下!
moodboy1982 2005-10-19
  • 打赏
  • 举报
回复
UP一下,。
Gateman 2005-10-19
  • 打赏
  • 举报
回复
andyguo370你好!
出错!
Microsoft VBScript 运行时错误 错误 '800a01a8'
缺少对象: 'EA_DBO'
Scarroot 2005-10-19
  • 打赏
  • 举报
回复
mark
andyguo370 2005-10-19
  • 打赏
  • 举报
回复
<%
'*****************************************
'简单HTML代码过滤函数
'输入参数:
' 1、待过滤字符串
'*****************************************
Public Function Base_HTMLFilter(sInputStr)
If Len(sInputStr)>0 Then
sInputStr=Replace(sInputStr,Chr(13)&Chr(10),vbcrlf)
End If

Base_HTMLFilter=sInputStr
End Function

'*****************************************
'全HTML代码过滤函数
'输入参数:
' 1、待过滤字符串
'*****************************************
Public Function Full_HTMLFilter(sInputStr)
If Len(sInputStr)>0 Then
sInputStr=Replace(sInputStr, ">", ">")
sInputStr=Replace(sInputStr, "<", "<")
sInputStr=Replace(sInputStr, """", """)
sInputStr=Replace(sInputStr, CHR(32), " ")
sInputStr=Replace(sInputStr, CHR(9), " ")
sInputStr=Replace(sInputStr, CHR(34), """)
sInputStr=Replace(sInputStr, CHR(39), "'")
sInputStr=Replace(sInputStr, CHR(13), "")
sInputStr=Replace(sInputStr, CHR(10) & CHR(10), "</P><P> ")
sInputStr=Replace(sInputStr, CHR(10), "<BR>")
sInputStr=BadWords_Filter(sInputStr)
End If

Full_HTMLFilter = sInputStr
End Function

'***************************************
'HTML过滤逆转换函数
'输入参数:
' 1、待转换字符串
'***************************************
Public Function Un_Base_HTMLFilter(sInputStr)
If Len(sInputStr)>0 Then
sInputStr = Replace(sInputStr, "</P><P> ", " ")
sInputStr = Replace(sInputStr, "<BR>", " ")
End If

Un_Base_HTMLFilter = sInputStr
End Function

'***************************************
'HTML过滤逆转换函数
'输入参数:
' 1、待转换字符串
'***************************************
Public Function Un_Full_HTMLFilter(sInputStr)
If Len(sInputStr)>0 Then
sInputStr = Replace(sInputStr, "</P><P> ", CHR(10) & CHR(10))
sInputStr = Replace(sInputStr, "<BR>", CHR(10))
End If

Un_Full_HTMLFilter = sInputStr
End Function

'****************************************
'屏蔽字符过滤函数
'输入参数:
' 1、待过滤内容
'****************************************
Public Function BadWords_Filter(strText)
Dim str_FilterContent
Dim BadWord_Array
Dim Tmp,i,TempArray

TempArray=EA_DBO.Get_System_Info()
If IsArray(TempArray) Then str_FilterContent=TempArray(7,0)

If Not(IsNull(str_FilterContent) Or Not IsNull(strText)) Then
BadWord_Array = Split(str_FilterContent, ";")

For i = 0 To Ubound(BadWord_Array)
Tmp=Split(BadWord_Array(i),"==")

strText = Replace(strText, Tmp(0), Tmp(1))
Next
End If

BadWords_Filter = strText
End Function

Public function DealJsText(Str)
if not isnull(Str) then
Dim re,po,ii

Str = Replace(Str, CHR(9), " ")
Str = Replace(Str, CHR(39), "'")
Str = Replace(Str, CHR(13), "")
Str = Replace(Str, CHR(10) & CHR(13), "</P><P> ")
Str = Replace(Str, CHR(10), "")
Str = Replace(Str, "‘", "'")
Str = Replace(Str, "’", "'")
'网友冷情圣郎提供
Str = Replace(Str, "\", "\\")
Str = Replace(Str, CHR(32), " ")
Str = Replace(Str, CHR(34), "\""")
Str = Replace(Str, CHR(39), "'")

Set re=new RegExp
re.IgnoreCase =true
re.Global=True
po=0
ii=0

re.Pattern="(javascript)"
Str=re.Replace(Str,"<I>&#106avascript</I>")
re.Pattern="(jscript:)"
Str=re.Replace(Str,"<I>&#106script:</I>")
re.Pattern="(js:)"
Str=re.Replace(Str,"<I>&#106s:</I>")
re.Pattern="(</SCRIPT>)"
Str=re.Replace(Str,"</script>")
re.Pattern="(<SCRIPT)"
Str=re.Replace(Str,"<script")

DealJsText = Str
End if
end Function

%>
meizz 2005-10-19
  • 打赏
  • 举报
回复
Server.HtmlEncode()

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧