求一个SQL语句

shijian58 2003-12-12 01:02:19
说明:clubconfig表里的badwords字段保存着一些非法词组,在数据库中的格式为:A|B|C|D|等,我想实现当topic里只要有相关字符如A或B就会弹出提示,禁止发布。但是SQL语句却不知道该如何写,下面的语句实现不了,请问如何可以实现
select badwords from clubconfig where badwords like '"&topic&"'"
...全文
8 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shijian58 2003-12-15
过了一个周末还是没有解决,大家帮忙啊
  • 打赏
  • 举报
回复
shijian58 2003-12-12
sql="select badwords from clubconfig"
rs.open sql,conn,1,1
badwords=split(rs("badwords"),"|")
for i=0 to ubound(badwords)
if instr(username,badwords(i)) then
response.write "用户名里有非法字符!"
response.end
end if
next
我已经按(兜兜裤)说的做了,但是无论输入什么字符都提示"用户名里有非法字符"
  • 打赏
  • 举报
回复
angelheavens 2003-12-12
就按a_zhe_20(兜兜裤)说做!
  • 打赏
  • 举报
回复
shijian58 2003-12-12
帮忙解决一下啊同志们
  • 打赏
  • 举报
回复
shijian58 2003-12-12
所有代码
<%
username=server.htmlencode(Trim(Request("username")))
if Request("menu")="Check" then
sql="select badwords from clubconfig"
rs.open sql,conn,1,1
badwords=split(rs("badwords"),"|")
for i=0 to ubound(badwords)
if instr(username,badwords(i)) then
response.write "用户名里有非法字符!"
response.end
end if
next
If conn.Execute("Select id From [user] where username='"&username&"'" ).eof Then
response.write "用户名" <font color=red>"&HTMLEncode(username)&"</font> "可以正常注册!"
else
response.write "您所选的用户名" <font color=red>"&username&"</font> "已经有用户使用,请另外选择一个用户名。"
end if
responseend
end if
if Request.ServerVariables("request_method") = "POST" then
password=Trim(Request("password"))
........
sign=server.htmlencode(Request("sign"))
sign=replace(sign,vbCrlf,"<br>")
sign=replace(sign,"\","\\")
temp=UCase(sign)
if conn.execute("select badwords from clubconfig where badwords like '%"&username&"%'").eof then
response.write "<script LANGUAGE='javascript'>alert('您选择的用户名有非法嫌疑,请重新注册!');history.go(-1);</script>"
end if
if instr(username," ")>0 or instr(username,"#")>0 or instr(username,"`")>0 or instr(username,"|")>0 or instr(username," ")>0 or instr(username," ")>0 or Instr(username,"%")>0 or Instr(username,"&")>0 or Instr(username,"ヴ")>0 or Instr(username,"ヂ")>0 or Instr(username,"ゼ")>0 or Instr(username,"ヅ")>0 or Instr(username,"") or Instr(username,"+")>0 then
message=message&"<li>您的用户名中不能含有特殊符号"
end if
sql="select * from [user] where username='"&HTMLEncode(username)&"'"
rs.Open sql,Conn
if not rs.eof then
message=message&"<li>此用户名已经被别人注册了"
end if
rs.close
if RegOnlyMail = 1 then
sql="select * from [user] where usermail='"&usermail&"'"
rs.Open sql,Conn
if not rs.eof then
message=message&"<li>此Email已经被别人注册了"
end if
rs.close
end if
if message<>"" then
error(""&message&"")
end if
if userface = "" then
userface=84
randomize
userface=Int((userface*rnd)+1)
end if
for each ho in request.form("character")
allcharacter=""&allcharacter&""&ho&""
next
rs.Open "[user]",conn,1,3
rs.addnew
rs("username")=username
..........
rs("regtime")=""&Date()&""
rs("landtime")=""&now()&""

rs.update
rs.close
Application("NewUserName")=username
mailaddress=usermail
mailtopic="用户名注册成功"
body=""&vbCrlf&"亲爱的"&username&", 您好!"&vbCrlf&""&vbCrlf&"  恭喜! 您已经成功地注册了您的资料, 非常感谢您使用"&homename&"的服务!"&vbCrlf&""&vbCrlf&" * 您的帐号是:"&username&" 密码是:"&password&""&vbCrlf&""&vbCrlf&" * "&clubname&"("&cluburl&"/Default.asp)"&vbCrlf&""&vbCrlf&" * 最后, 有几点注意事项请您牢记"&vbCrlf&"1、请遵守《计算机信息网络国际联网安全保护管理办法》里的一切规定。"&vbCrlf&"2、使用轻松而健康的话题,所以请不要涉及政治、宗教等敏感话题。"&vbCrlf&"3、承担一切因您的行为而直接或间接导致的民事或刑事法律责任。
<!-- #include file="inc/mail.asp" -->
<%
if SendPassword<>1 then
userword="<li>用户名:<font color=red>"&username&"</font><li>密码:<font color=red>"&password&"</font>"
Response.Cookies("username")=username
Response.Cookies("userpass")=md5(password)
end if
message=message&""&userword&"<li>注册新用户资料成功<li><a href=main.asp>返回论坛首页</a>"
succeed(""&message&"<meta http-equiv=refresh content=3;url=main.asp>")
end if
top
%>
<title>注册用户资料</title>
<script>function New(para_URL){var URL=new String(para_URL);window.open(URL,'','resizable,scrollbars')}
function Check(){var Name=document.form.username.value;
window.open("register.asp?menu=Check&username="+Name,"","width=200,height=20");
}
</script>
<SCRIPT src="inc/birthday.js"></SCRIPT>
<table width=97% align="center" border="0">
<tr>
<td vAlign="top" width="30%"><img src="images/logo.gif" border="0"></td>
<td vAlign="center" align="top"> <font color=000000><img src="images/closedfold.gif" width="14" height="14"> <a href=main.asp><%=clubname%></a><br>
 <img height=15 src="images/coner.gif" width=15><img src="images/openfold.gif"> 注册新用户</font></td>
</tr>
</table>
<table width=97% align=center cellspacing=0 cellpadding=0 border=0 class=a1> <form method="POST" name="form" onsubmit="return VerifyInput();">
<tr>
<td>
<table width=100% cellspacing=1 cellpadding=4 border=0 class=a2>
<tr>
<td height="20" align="center" colspan="2" class=a1><b>填写用户资料</b></td>
</tr>
<tr bgcolor="FFFFFF">
<td colspan="2" height="25" valign="middle" align="left"><b> <img src="images/1.gif">个人社区信息</b>(以下内容必填)</td>
</tr>
<tr>
<td class=a3 height="5" align="right" valign="middle" width="46%"><b>网上尊称:</b></td>
<td class=a3 height="5" align="left" valign="middle" width="54%">
 
<input type="text" name="username" size="28" maxlength="12" value="<%=Request("username")%>"> <input onclick="javascript:Check()" type="button" value="检测帐号" name="button">
</td>
  • 打赏
  • 举报
回复
shijian58 2003-12-12
还是不行,不论输入什么都提示有非法字符
  • 打赏
  • 举报
回复
a_zhe_20 2003-12-12
应该先把badword提取出来放在变量数组里,然后循环判断
不能直接写在SQL语句中,如果是你那样
那么用户“abc”在“add|dfj|abcdefg”中则不合法

sql="select badword from clubconfig"
rs.open sql,conn,1,1
badwords=split(rs("badwords"),"|")
for i=0 to ubound(badwords)
if instr(username,badwords(i)) then
response.write "用户名里有非法字符!"
response.end
end if
next
  • 打赏
  • 举报
回复
shijian58 2003-12-12
我是这么写的,但为什么还是不对,不管输入什么字符都提示非法
if conn.execute("select badwords from clubconfig where badwords like '%"&username&"%'").eof then
response.Write("您所选的用户名" <font color=red>"&username&"</font> "有非法嫌疑,请另外选择一个用户名。")
end if
  • 打赏
  • 举报
回复
a_zhe_20 2003-12-12
要正确的过滤应该把数据库的非法词组提取出来
然后用instr函数来判断是否存在
badwords=split(rs("badwords"),"|")
for i=0 to ubound(badwords)
if instr(topic,badwords(i)) then
response.write "有非法字符!"
response.end
end if
next

  • 打赏
  • 举报
回复
jerrythink 2003-12-12
up
  • 打赏
  • 举报
回复
sherrywear 2003-12-12
select badwords from clubconfig where badwords like '%"&topic&"%'"
  • 打赏
  • 举报
回复
相关推荐
发帖
ASP
加入

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
申请成为版主
帖子事件
创建了帖子
2003-12-12 01:02
社区公告
暂无公告