一个简单的ASP问题,100分相送!

无条件为你 2008-04-04 03:56:58
我想实现访问http://www.XXXXX.cn/a.asp?QQ=123456&PP=ABC的时候,要求把网址上面的“123456”和“ABC”写到ACCESS数据库中,访问http://www.XXXXX.cn/a.asp?QQ=epng&PP=123ss的时候,要求把网址上面的“epng”和“123ss”写到ACCESS数据库中。


<%
dbpath=server.mappath("ACC.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq=" & dbpath
Conn.Execute ("insert into mwy(mm,DD) values('"& <%=Request.QueryString("QQ")%> & "*" & <%=Request.QueryString("PP")%> &"',#"& Now() &"#)")
%>

上面是A.ASP中的代码,是否能实现这个功能,注意检查一下有没有语法错误。如果不能实现或者有语法错误,请给予修正或另写代码。问题解决马上结贴。


附:

ACC.mdb数据库中表名:mwy
有三个字段:id、mm(文本型)、dd(日期/时间型)。
...全文
66 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
quhaiwen331 2008-06-24
认为hookee的代码可靠性和可读生强些,对楼主学习ASP有利.呵呵.
回复
文盲老顾 2008-04-04
过滤的目的主要是防止别人使用地址栏的数据构造 sql 语句,也就是所谓的防注入
回复
无条件为你 2008-04-04
[Quote=引用 7 楼 myvicy 的回复:]
别的字段可以做一个过滤就是用replace替换空格或者单引号都可以。
[/Quote]

为什么要做过滤?主要是过滤哪些异常?

得到答案后马上结贴,不再增加新问题。
回复
hookee 2008-04-04
dbpath = server.mappath("2008/ACC.mdb")
回复
无条件为你 2008-04-04
如果我的数据库ACC.mdb文件与ASP不在同一个目录。ASP在FTP根目录,ACC.mdb在“2008”文件夹下,那么这个ASP文件在连结数据库的时候需要做哪些改动?相对路径怎么添上?

也许我的问题是简单的很,可是我没有接触过的东西对我而言就是……
回复
myvicy 2008-04-04
时间用now就可以了。
别的字段可以做一个过滤就是用replace替换空格或者单引号都可以。
回复
myvicy 2008-04-04
都能通过.
回复
hookee 2008-04-04
以下代码测试过。上面的少写了个& , 另外数据库表id是自增字段

<%
QQ = Request.QueryString("QQ")
PP = Request.QueryString("PP")
QQ = Replace(QQ,"'","''")
PP = Replace(PP,"'","''")
dt = Year(Now()) & "-" & Month(Now()) & "-" & Day(Now()) & " " & Time

dbpath = server.mappath("ACC.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq=" & dbpath
conn.Execute "insert into mwy(mm,DD) values('" & QQ & "*" & PP & "',#" & dt & "#)"
conn.close
set conn = Nothing
%>
回复
文盲老顾 2008-04-04
dt = Year(Now()) & "-" & Month(Now()) & "-" Day(Now()) & " " & Time

这个是怕服务器上的时间设置格式与你所需要的格式不同,所以自己定义一下
回复
文盲老顾 2008-04-04
1 楼的直接实现了,没有做防注入处理

2楼的做了个简单的注入处理
回复
无条件为你 2008-04-04
谁的更好些呢?我对ASP不熟悉。主是是做Delphi的。

1楼和2楼的代码你们都测试通过了吗?2楼的为什么字符串连接不直接用&Now,而要用dt = Year(Now()) & "-" & Month(Now()) & "-" Day(Now()) & " " & Time ,你主要是为了看代码清晰,还是你的这些写法比1楼的好?

重要的是要测试通过,光理论通过不行啊。我没有环境测试,麻烦两位给个解释。
回复
hookee 2008-04-04
<%
QQ = Request.QueryString("QQ")
PP = Request.QueryString("PP")
QQ = Replace(QQ,"'","''")
PP = Replace(PP,"'","''")
dt = Year(Now()) & "-" & Month(Now()) & "-" Day(Now()) & " " & Time

dbpath = server.mappath("ACC.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq=" & dbpath
conn.Execute "insert into mwy(mm,DD) values('" & QQ & "*" & PP & "',#" & dt & "#)"
conn.close
set conn = Nothing
%>
回复
myvicy 2008-04-04
<% 
dbpath=server.mappath("ACC.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq=" & dbpath
Conn.Execute ("insert into mwy(mm,DD) values('"&Request.QueryString("QQ")& "*"&Request.QueryString("PP")&"',#"& Now()&"#)")
%>
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-04 03:56
社区公告
暂无公告