学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

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

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

if(Request("newsID") <> "") then
Command1__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只是数字啊,没单引号啊?为什么要改成''

TOP

汗..DW可视化开发ASP..建议楼主不要用..那玩意开发出来的..不行..

TOP

可能是怕别人用'or'='or'非法登录吧!把获取的  '(单引号)替代成''
估计是这机关报吧!
学建网站:www.lele1988.cn

TOP

Response.Write Request("newsID")
显示一下这个新闻编号就知道是为什么了。
http://www.lxzhcn.net
版块版主招募中
网站论坛发帖无问题,欢迎发帖。

TOP

引用:
以下是引用 yms123 在 2008-5-14 16:23 的发言:

Response.Write Request("newsID")
显示一下这个新闻编号就知道是为什么了。
按版主说的做了,出现的结果只是光秃秃的数字,其它什么都没有,没有单引号什么的啊,也许是我没明白版主的意思,请版主说详细点哦,谢谢

TOP

他是把单引号给过滤掉
以后用户再提交带有单引号的字符时,Replace()会将单引号过滤为空。如此一来,提交的特殊字符也就失去了意义。
防止别人进行网站注入的时候用到的

[ 本帖最后由 ilovey4 于 2008-5-17 01:27 编辑 ]
新手!

TOP

发新话题