<%
Server.scriptTimeout="10"
set conn=Server.CreateObject("ADODB.connection")
connstr="DBQ="&server.mappath("psd.mdb")&";DRIVER={Microsoft Access Driver (*.mdb)};"
conn.open connstr
username=request.form("username") '此处最好过滤一下
password=request.Form("password")
Set RST=Server.CreateObject("ADODB.RecordSet")
StrSQL="Select * from psd where username='" & username & "'"
RST.Open StrSQL,conn,1,1 '得到搜索后的记录
while not rst.eof
if password=rst("password") then
response.cookies("adminok")=true
response.redirect "index.html"
else
response.redirect "error.html"
end if
rst.movenext
wend
rst.close
set rst=nothing
conn.close
%>
首先思路错了
应该是Sql="Select * From Member Where UserName='"&username&"' And UserPWD='"&password&"'"
这样才可能将游标放置到你要指定的位置,否则要么是游标在最上要么在最下。
而且通过我给你讲的这种方式,程序代码可以节约很多。
根据你的方式其实也可以,不过异常麻烦,当数据量大的时候你就没办法了。
举例如下:
Sql="Select * From Member Order By ID Asc"
Set Rs=Conn.Execte(Sql)
构建循环 条件是Not Rs.Eof Or Not Rs.Bof
然后将每次从数据库从提取的指定字段数值和你的Request过来的进行比较。如果结果符合就跳出循环,否则继续。你想如果有几十万的数据量,那比较一个周期系统是不是要瘫痪了?
结束循环