Replace(Command1__m_id, "'", "''") 的问题
if(Request("newsID") <> "") thenCommand1__m_id = Request("newsID")
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_news_STRING
Command1.CommandText = "DELETE FROM news WHERE n_ID in(" + Replace(Command1__m_id, "'", "''") + ") "
Command1.CommandType = 1
Command1.CommandTimeout = 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只是数字啊,没单引号啊?为什么要改成''
估计是这机关报吧! Response.Write Request("newsID")
显示一下这个新闻编号就知道是为什么了。 [quote][bo]以下是引用 [un]yms123[/un] 在 2008-5-14 16:23 的发言:[/bo]
Response.Write Request("newsID")
显示一下这个新闻编号就知道是为什么了。 [/quote]
按版主说的做了,出现的结果只是光秃秃的数字,其它什么都没有,没有单引号什么的啊,也许是我没明白版主的意思,请版主说详细点哦,谢谢 他是把单引号给过滤掉
以后用户再提交带有单引号的字符时,Replace()会将单引号过滤为空。如此一来,提交的特殊字符也就失去了意义。
防止别人进行网站注入的时候用到的[tk11]
[[it] 本帖最后由 ilovey4 于 2008-5-17 01:27 编辑 [/it]]
页:
[1]
