后台登入获取数据库地址不对,很奇怪,求解答

huige728 2012-06-25 09:52:55
先看下报错:
错误类型:
Microsoft JET Database Engine (0x80004005)
找不到文件 'D:\★web_成品★\cms\admin\data.mdb'。
D:\★WEB_成品★\CMS\ADMIN\../Data/conn.asp, 第 5 行
=============================================================================================================
自己的解决法子:修改conn中的数据库地址为../Data/data.mdb(数据库和conn在一个文件夹下,这样的地址应该是不对的)
=============================================================================================================
看下目录结构

<!--#include file="../include/function.asp"-->
<%
'当有账号在线,要求重新登入
response.charset = "GBK"
if session("Admin") <> "" then
call errorHistoryBack("必须退出当前帐号再登陆")
end if
'接收登录信息
if request.form("submit") = "登录" then
dim adminname,adminpass,yzm
adminname = request.form("admin_name")
adminpass = request.form("admin_pass")
yzm = request.form("yzm")

if len(adminname) <2 then
call errorHistoryBack("用户名不得少于2位")
end if

if len(adminpass) < 6 then
call errorHistoryBack("密码不得少于6位")
end if

if len(yzm) <> 4 then
call errorHistoryBack("验证码必须是4位",1)
end if

if not isnumeric(yzm) then
call errorHistoryBack("验证码必须是数字")
end if

'判断服务器中的验证码信息
if cint(yzm) <> Session("GetCode") then
call errorHistoryBack("验证码错误")
end if

'判断数据库里的字段是否正确
%>
<!--#include file="../Data/conn.asp"-->
<!--#include file="../CheckCode/md5.asp"-->
<%
dim rs,sql
set rs = server.createobject("adodb.recordset")
sql = "select * from Admin where AdminName='"&adminname&"' and AdminPass='"&md5(adminpass)&"'"
rs.open sql,conn,1,1

if not rs.eof then
'数据正确
session("Admin") = adminname
response.redirect "admin_index.asp"
else
'数据不正确
call close_rs
call close_conn
call errorHistoryBack("用户名或密码不正确")
end if

call close_rs
call close_conn
end if
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>登入页-login</title>
<link href="css/login.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/login2.js"></script>
</head>

<body>
<div id="login-box">
<div class="login-top">管理登入</div>
<div class="login-main">
<form name="login" action="admin_login.asp" method="POST" id="login">
<p><label for="admin_name">用户名</label>
<input name="admin_name" type="text" id="admin_name" class="text">
</p>
<p><label for="admin_pass">密  码</label>
<input name="admin_pass" type="password" id="admin_pass" class="text">
</p>
<p><label for="yzm">验证码</label>
<input name="yzm" type="text" id="yzm" class="text1">
<img src="../CheckCode/GetCode.asp" onclick="javascript:this.src='../CheckCode/GetCode.asp?tm='+Math.random()" style="cursor:pointer" alt="验证码" />
</p>
<input name="submit" type="submit" class="submit" value="登录" onclick="return check();">
<input name="submit2" type="reset" class="submit" value="重置">
</form>
</div>
<div class="login-power">
Powered by<strong>菲戈</strong></a>© 2011 feige Inc.
</div>
</div>
</body>
</html>


admin_login.asp文件内容
<%
dim conn
set conn = server.createobject("adodb.connection")
conn.connectionstring="Provider = Microsoft.Jet.OLEDB.4.0;Data Source="&server.mapPath("../Data/data.mdb")
conn.open


sub close_conn
conn.close
set conn = nothing
end sub

sub close_rs
rs.close
set rs = nothing
end sub


%>



conn.connectionstring="Provider = Microsoft.Jet.OLEDB.4.0;Data Source="&server.mapPath("data.mdb") //注意这里,要改成../Data/data.mdb才能行
真纠结
...全文
5399 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
huige728 2012-07-05
  • 打赏
  • 举报
回复
强人,开始懂了,谢谢
[Quote=引用 8 楼 的回复:]
就和DOS差不多啊~
比如你打 cd..的时候会返回上一级
当你打cd/就会返到回根目录~
在IIS里,你这个网站的根就在/这里,那下一级自然就是/data,再这个里面的文件data.mdb就是/data/data.mdb
同时,你这个conn.asp文件也许会在admin或是别的文件夹里调用,那这时,如果你单写data.mdb
那么就是找不到数据库了~因为这时conn.asp变到目录为……
[/Quote]
htpower 2012-07-05
  • 打赏
  • 举报
回复
就和DOS差不多啊~
比如你打 cd..的时候会返回上一级
当你打cd/就会返到回根目录~
在IIS里,你这个网站的根就在/这里,那下一级自然就是/data,再这个里面的文件data.mdb就是/data/data.mdb
同时,你这个conn.asp文件也许会在admin或是别的文件夹里调用,那这时,如果你单写data.mdb
那么就是找不到数据库了~因为这时conn.asp变到目录为admin里编译去了~
虽然说../data/data.mdb是相对路径,但是文件夹再多一级就用不了啦~
所以不能用前面那两点~直接给他指定到/data/data.mdb这里就可以了
huige728 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
修改conn中的数据库地址为/Data/data.mdb
[/Quote]

能问下 为什么这样就行了??貌似按路径来说 应是就是直接写data.mdb就足够了啊
htpower 2012-06-30
  • 打赏
  • 举报
回复
修改conn中的数据库地址为/Data/data.mdb
huige728 2012-06-27
  • 打赏
  • 举报
回复
有木有人知道是怎么回事?
never exists 2012-06-26
  • 打赏
  • 举报
回复
来打酱油 有木有启用父路径
huige728 2012-06-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
来打酱油 有木有启用父路径
[/Quote]

已经启用了
huige728 2012-06-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
要么用根目录的

要么 弄两个连接文件
admin目录 一个
根目录一个
[/Quote]

我是用根目录的,上面我写了代码如下,你在瞅瞅
<!--#include file="../Data/conn.asp"-->
<!--#include file="../CheckCode/md5.asp"-->

我这里拿到conn.asp,conn.asp和数据库在同一个文件夹,应该是可以连接到数据库的,但是提示
错误类型:
Microsoft JET Database Engine (0x80004005)
找不到文件 'D:\★web_成品★\cms\admin\data.mdb'。
D:\★WEB_成品★\CMS\ADMIN\../Data/conn.asp, 第 5 行

它这个还以为数据库是在后台目录中呢
001007009 2012-06-25
  • 打赏
  • 举报
回复
要么用根目录的

要么 弄两个连接文件
admin目录 一个
根目录一个

28,390

社区成员

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

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