注册 登录
编程论坛 ASP技术论坛

Replace(Command1__m_id, "'", "''") 的问题

liujiangmc 发布于 2008-05-13 00:07, 1065 次点击
if(Request("newsID") <> "") then
Command1__m_id = Request("newsID")
set Command1 = Server.CreateObject(")
Command1.ActiveConnection = MM_news_STRING
= "DELETE FROM news  WHERE n_ID in(" + Replace(Command1__m_id, "'", "''") + ") "
= 1
= 0
Command1.Prepared = true
Command1.Execute()
response.Redirect("news_list.asp")
else
response.write ("<script>alert('您没有选择任何记录!');history.go(-1);</script>")
end if
上段代码中,Replace(Command1__m_id, "'", "''") 这句单引号从何而来,Command1__m_id只是数字啊,没单引号啊?为什么要改成''
5 回复
#2
xxzdm2008-05-14 13:18
汗..DW可视化开发ASP..建议楼主不要用..那玩意开发出来的..不行..
#3
lele20072008-05-14 14:05
可能是怕别人用'or'='or'非法登录吧!把获取的  '(单引号)替代成''
估计是这机关报吧!
#4
yms1232008-05-14 16:23
Response.Write Request("newsID")
显示一下这个新闻编号就知道是为什么了。
#5
liujiangmc2008-05-16 22:32
[bo]以下是引用 [un]yms123[/un] 在 2008-5-14 16:23 的发言:[/bo]

Response.Write Request("newsID")
显示一下这个新闻编号就知道是为什么了。

按版主说的做了,出现的结果只是光秃秃的数字,其它什么都没有,没有单引号什么的啊,也许是我没明白版主的意思,请版主说详细点哦,谢谢
#6
ilovey42008-05-17 01:26
他是把单引号给过滤掉
以后用户再提交带有单引号的字符时,Replace()会将单引号过滤为空。如此一来,提交的特殊字符也就失去了意义。
防止别人进行网站注入的时候用到的

[[it] 本帖最后由 ilovey4 于 2008-5-17 01:27 编辑 [/it]]
1