我们都是用你的用户名来查询的,如果查不到就是越界了,我这样用是因为写的时候还不知道recordcount为什么总是返回-1的原因(详细请看昨天的某贴子),不过在我这是可以执行的。如果查到了数据,就是说有这条记录的话,就不应该是这样的,你试一下:
将 if rs.eof or rs.bof then 改为:
if rs.recordcount=0 then
如果你打开数据库的方式不对可能不行,先检查一下返回的是不是-1吧
wuya0531(wuya)兄:
连接等问题已经解决,但若写为:
if not rs.bof and rs.eof then
response.write "用户名或密码错"
else
response.write “ok”
end if
在进入页面时未判断就先执行了“用户名或密码错"这句,有什么办法不让它先判断?
我的代码,不太成熟的:
set cnn=server.createobject("adodb.connection")
Set Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =" & server.mappath("test.mdb")
cnn.open strcnn
set rs=server.createobject("adodb.Recordset")
rs.CursorType = 1 'adOpenKeyset
rs.LockType = 3 'adLockOptimistic
rs.Open "select * from menber where [usname] ='" & request.form("usname") & "'",Cnn
if rs.eof or rs.bof then
response.write "<p><br><center><font color=silver>该用户名不存在或已被取消!请注册!</color></center><p><br>"
else
if rs("mima")=request.form("uspw") then
session("name")=rs("usname")
session("dltime")=time
response.redirect "default.asp"
else
response.write "<p><br><center><font color=silver>输入错误密码!</color></center><p><br>"
end if
end if
需要两个页面,一个进行输入,一个进行处理
登陆界面就不多说了,文本框名为id,pwd
<%dim conn,rs,sql
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("你的数据库")
set rs=server.createobject("adodb.recordset")
session("id")=request.form("id")
session("pwd")=request.form("pwd")
sql="select * from where id="&session("id")&" and pwd='"&session("pwd")&"'"
rs.open sql,conn,1,1
if not rs.bof and rs.eof then
....
else
.....
end if
%>