注册 登录
编程论坛 ASP技术论坛

[求助]这个文件的内容有什么语法错误吗?

jd4105 发布于 2007-09-14 19:04, 1428 次点击
<!--#include file="../include/conn.asp"-->
<%
sql = "select id,username,password,flag,state from admin where username='"&trim(rs("UserName"))&"'"
rs.open sql,conn,3
if not rs.eof then
if rs("state")=0 then
response.write "该帐号已经停用!!!"
response.end
end if
if trim(request("PassWord"))=trim(rs("password")) then
session("username")=trim(rs("username"))
session("flag")=rs("flag")
session("id")=rs("id")
%>
<script language="javascript">
window.navigate("main.asp");
</script>
<%
else
%>
<script language="javascript">
alert("用户密码错误!");
window.navigate("index.asp");
</script>
<%
end if
else
%>
<script language="javascript">
alert("用户名错误!");
window.navigate("index.asp");
</script>
<%
end if
%>

没有语法错误吗,数据库路径是对的.admin表也有的

http://www.fz911.cn/1/24ol.cn
登陆
admin
admin

只要一check就500错误了.
懂的帮我下,谢谢
14 回复
#2
madpbpl2007-09-14 20:13

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x209c Thread 0x1c7c DBC 0x1713fe4 Jet'。

/1/include/conn.asp,行 4
这是你的文件报错的代码,检查一下数据库路径

#3
multiple19022007-09-14 20:41
https://bbs.bc-cn.net/viewthread.php?tid=163776

你可以试试论坛的“搜索”功能,很强大。
#4
盖世豪侠2007-09-14 20:55
sql = "select id,username,password,flag,state from admin where username='"&trim(rs("UserName"))&"'"

#5
盖世豪侠2007-09-14 20:59
只能关闭一个RS后才能在打开一个,中间加个RS.CLOSE就好了
#6
jd41052007-09-14 22:47
以下是引用madpbpl在2007-9-14 20:13:56的发言:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x209c Thread 0x1c7c DBC 0x1713fe4 Jet'。

/1/include/conn.asp,行 4
这是你的文件报错的代码,检查一下数据库路径

这个错误是怎么得到的呢?? include/conn.asp 的内容是这样的.MDB的路径就是主目录下的/db/mxwedding.mdb

<%
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("./db/mxwedding.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath &";"
set rs=server.createobject("adodb.recordset")

Function SafeRequest(ParaName,ParaType)
'--- 传入参数 ---
'ParaName:参数名称-字符型
'ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符) 

Dim ParaValue
ParaValue=Request(ParaName)
If ParaType=1 then
If not isNumeric(ParaValue) then
Response.write "参数" & ParaName & "必须为数字型!"
Response.end
End if
Else
ParaValue=replace(ParaValue,"'","''")
ParaValue=replace(ParaValue,";",";")
End if
SafeRequest=ParaValue
End function
%>



另外,楼上的仁兄,能说具体点吗?RS.CLOSE加了也没有用.
首页调用数据正常的。

http://www.fz911.cn/1/

为什么后台登陆, login检查ID密码的时候会出现500的错误呢?

http://www.fz911.cn/1/24ol.cn/index.asp
登陆
admin
admin

index.asp 文件内容是
<HTML>
<HEAD>
<TITLE>网后台管理系统</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="hs.css" type="text/css">
<link rel="stylesheet" href="../css/font.css" type="text/css">
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function check(){
if (document.formlogin.UserName.value.length == 0) {
alert("请输入用户名!");
document.formlogin.UserName.focus();
return false;
}else if (document.formlogin.PassWord.value.length == 0) {
alert("请输入密码!");
document.formlogin.PassWord.focus();
return false;
}
return true;
}
//-->
</SCRIPT>
<BODY bgcolor="#3E3E3E" leftmargin="0" topmargin="0" onload="document.formlogin.UserName.focus();" background="../images/bgpic.gif">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0" align="center" width="60%">
<tr>
<td height="300">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>&nbsp; </td>
<td valign="bottom">
<div align="right"></div>
</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0" background="../images/2line.gif" height="2">
<tr>
<td> </td>
</tr>
</table>
<br>
<br>
<table width="50%" border="0" align="center" cellspacing="1" cellpadding="10">
<form name="formlogin" method="post" action="checklogin.asp" onSubmit="return check();">
<tr>
<td colspan="2">
<div align="center"></div>
</td>
</tr>
<tr>
<td bgcolor=>
<div align="right">用 户 名:</div>
</td>
<td width="65%" bgcolor=>
<input type="text" name="UserName" value="" class="button">
</td>
</tr>
<tr>
<td bgcolor=>
<div align="right">密  码:</div>
</td>
<td width="65%" bgcolor=>
<input type="password" name="PassWord" value="" class="button">
</td>
</tr>
<tr>
<td bgcolor=>&nbsp;</td>
<td width="65%" bgcolor=>
<input type="submit" name="Submit" value="登录" class="button">
 
<input type="reset" name="Reset" value="取消" class="button">
</td>
</tr>
</form>
</table>
<br>
<table width="100%" border="0" cellspacing="0" cellpadding="0" background="../images/2line.gif" height="2">
<tr>
<td> </td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
</BODY>
</HTML>

到底是哪个文件出了问题呢?
搜了下论坛,有类似的,但也不能解决.
我刚学asp,实在头疼.各位请指教啊



#7
madpbpl2007-09-14 23:54
DBPath = Server.MapPath("./db/mxwedding.mdb")
检查一下是不是这里错了
改成
DBPath = Server.MapPath("../db/mxwedding.mdb")
试试这样
#8
jd41052007-09-15 08:59

谢谢楼上的,但是改成 DBPath = Server.MapPath("../db/mxwedding.mdb")
连首页都无法访问,出现

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x209c Thread 0x1c7c DBC 0x1713fe4 Jet'。

/1/include/conn.asp,行 4

的错误

是不是连接数据库的语句不对,或者服务器认不出路径呢???

#9
madpbpl2007-09-15 10:03

数据库链接的路径不对,你需要调整下面红色部份,也就是你的conn.asp和mxwedding.mdb的相对位置。
Server.MapPath(" ../db/mxwedding.mdb ")

#10
jd41052007-09-15 10:43

现在全部按源文件上传了.
目录是这样的

/1/include/conn.asp
/1/db/mxwedding.mdb

conn.asp文件内容是这样的

[CODE]<%
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("../db/mxwedding.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath &";"
set rs=server.createobject("adodb.recordset")
Function SafeRequest(ParaName,ParaType)
'--- 传入参数 ---
'ParaName:参数名称-字符型
'ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符) 
Dim ParaValue
ParaValue=Request(ParaName)
If ParaType=1 then
If not isNumeric(ParaValue) then
Response.write "参数" & ParaName & "必须为数字型!"
Response.end
End if
Else
ParaValue=replace(ParaValue,"'","''")
ParaValue=replace(ParaValue,";",";")
End if
SafeRequest=ParaValue
End function
%>[/CODE]

但是这样的话,首页都无法访问,路径应该没有问题啊???
http://www.fz911.cn/1/

#11
madpbpl2007-09-15 12:01
DBPath = Server.MapPath("../db/mxwedding.mdb")
改成
DBPath = Server.MapPath("db/mxwedding.mdb")
#12
madpbpl2007-09-15 12:10
对于目录1下来说,数据库的路径是db/mxwedding.mdb
但是对于1目录下的子目录来说,数据库的路径是../db/mxwedding.mdb
楼主需要根据具体情况做出调整。
按照楼主的情况可能要写两个数据库链接文件,指向不同的路径,具体调用哪个要根据相对位置来调整。
#13
jd41052007-09-15 12:55
非常感谢楼上的详细解释.
但是按照这样的目录
/1/include/conn.asp
/1/db/mxwedding.mdb

conn.asp文件里面路径 ../db/里指向数据库的路径不是 ../db/mxwedding.mdb 也不是 db/mxwedding.mdb
而是 /db/mxwedding.mdb 是什么意思啊?
#14
virusswb2007-09-15 15:10

Active Server Pages 错误 'ASP 0126'

找不到包含文件

/1/24ol.cn/checklogin.asp,行 1

找不到包含文件 ''。


这是你的错误提示啊,明显是没有include/conn.asp文件,路径问题吧

#15
madpbpl2007-09-15 15:43
以下是引用jd4105在2007-9-15 12:55:35的发言:
非常感谢楼上的详细解释.
但是按照这样的目录
/1/include/conn.asp
/1/db/mxwedding.mdb

conn.asp文件里面路径 ../db/里指向数据库的路径不是 ../db/mxwedding.mdb 也不是 db/mxwedding.mdb
而是 /db/mxwedding.mdb 是什么意思啊?

../db/mxwedding.mdb前面的../是父目录的意思
因为你默认的文件在1/下面的index.asp或default.asp(我猜的)
这个文件相对于conn.asp文件的路径是db/mxwedding.mdb
再假设一个文件admin.asp,它的路径有/1/admin/admin.asp
这个文件相对于conn.asp文件的路径就是../db/mxwedding.mdb了

1