一个简单的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(日期/时间型)。
...全文
96 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
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.net 跨域单点登录实现原理: 当用户第一次访问web应用系统1的时候,因为还没有登录,会被引导到认证中心进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果 通过效验,返回给用户一个认证的凭据;用户再访问别的web应用的时候就会将这个Token带上,作为自己认证的凭据,应用系统接受到请求之后会把 Token送到认证中心进行效验,检查Token的合法性。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。所有应用系 统共享一个身份认证系统。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统 一的认证标志,返还给用户。另外,认证系统还应该对Token进行效验,判断其有效性。 所有应用系统能够识别和提取Token信息要实现SSO的功能, 让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对Token进行识别和提取,通过与认证系统的通讯,能自动判断当 前用户是否登录过,从而完成单点登录的功能。 asp.net 跨域单点登录实现。源码分为3个站点:一个总站,即认证中心,用来登录。http://localhost/MasterSite/Default.aspx 2个分站http://localhost/Site1/Default.aspx http://localhost/Site2/Default.aspx (当然你也可以新建站点,修改hosts表,配置成 http://www.MasterSite.com http://www.Site1.com http://www.Site2.com 的形式)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧