| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1096 人关注过本帖
标题:[求助]脏字过滤问题!
只看楼主 加入收藏
sosql
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-6-22
收藏
 问题点数:0 回复次数:19 
[求助]脏字过滤问题!
现在问题是插入不了留言,总提示“有违规内容”,我的想法是把脏字都存在数据库里!提交留言时就判断是否是脏字!

Sqltr="select badwords from badword"
Set rs2= Server.CreateObject("ADODB.RecordSet")
rs2.open Sqltr,Conn,1,1
dim bad
bad=rs2("badwords")
function IsRoll(BodyStr)
dim RollStr,Ibound
RollStr=Array(bad)
Ibound=Ubound(RollStr)
for i=0 to Ibound
if instr(BodyStr,RollStr(i))<>0 then
IsRoll=true
exit Function
end if
next
IsRoll=false
end function
if IsRoll(GBookBody) and IsRoll(GBookTitle) then
response.Write("<script language='JavaScript'>alert('有违规内容')</script>")
else
'保存留言
SQLStr="Insert Into 。。。
搜索更多相关主题的帖子: 脏字 数据库 RollStr Ibound 
2007-07-21 09:41
MikeFT
Rank: 1
来 自:青岛
等 级:新手上路
帖 子:644
专家分:0
注 册:2006-11-1
收藏
得分:0 

你是不是数据有问题???


Live And Learn !!!
2007-07-21 10:47
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
一般可以用Replace函数直接过滤比如
<%
Dim Str
Str="abcTMDabc"
Response.Write Replace(Str,"TMD","")
%>
2007-07-21 11:03
sosql
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-6-22
收藏
得分:0 
不是的,我把RollStr=Array(bad)改成RollStr=Array(“贱人”),就正确。
2007-07-21 11:05
sosql
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-6-22
收藏
得分:0 
高手,帮忙看看呀!
2007-07-21 11:26
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
可以用Replace过滤如果楼主说的那种有违规内容显示提示的。
个人想的解决办法是Replace函数过滤到指定字符会改变字符串,而没有过滤到指定字符会返回原始字符串。
借助这一特点可以将过滤后的字符串与原始字符串进行比较,向等则证明没有违规内容,不等则证明有违规内容存在。
2007-07-21 11:34
sosql
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-6-22
收藏
得分:0 

那请问,我该怎么改?
需要过滤的内容是数据库里!给个完整的代码,让我看看把!

2007-07-21 11:50
SkyGull
Rank: 5Rank: 5
来 自:浙江杭州
等 级:贵宾
威 望:13
帖 子:839
专家分:324
注 册:2007-6-7
收藏
得分:0 
bad=rs2("badwords")
改成
bad=rs2(0)
2007-07-21 11:57
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
Sqltr="select badwords from badword"
Set rs2= Server.CreateObject("ADODB.RecordSet")
rs2.open Sqltr,Conn,1,1
dim bad
bad=rs2("badwords")
function IsRoll(BodyStr)
dim RollStr,Ibound,tBody
RollStr=Array(bad)
Ibound=Ubound(RollStr)
for i=0 to Ibound
tBody=Replace(BodyStr,RollStr(i),"")
next
If tBody=BodyStr Then
IsRoll=False
Else
IsRoll=True
End IF
end function
if IsRoll(GBookBody) and IsRoll(GBookTitle) then
response.Write("<script language='JavaScript'>alert('有违规内容')</script>")
else
'保存留言
SQLStr="Insert Into 。。。
修改后的代码
2007-07-21 11:59
sosql
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-6-22
收藏
得分:0 
以下是引用yms123在2007-7-21 11:59:06的发言:
Sqltr="select badwords from badword"
Set rs2= Server.CreateObject("ADODB.RecordSet")
rs2.open Sqltr,Conn,1,1
dim bad
bad=rs2("badwords")
function IsRoll(BodyStr)
dim RollStr,Ibound,tBody
RollStr=Array(bad)
Ibound=Ubound(RollStr)
for i=0 to Ibound
tBody=Replace(BodyStr,RollStr(i),"")
next
If tBody=BodyStr Then
IsRoll=False
Else
IsRoll=True
End IF
end function
if IsRoll(GBookBody) and IsRoll(GBookTitle) then
response.Write("<script language='JavaScript'>alert('有违规内容')</script>")
else
'保存留言
SQLStr="Insert Into 。。。
修改后的代码





不行的,版主!对脏字没有过滤!能写入留言!这是怎么回事???
2007-07-21 12:15
快速回复:[求助]脏字过滤问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012174 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved