asp 后台session传值问题

我做的后台程序想用session来验证管理员是否为空,还有退出后台系统后,把登陆记录删除掉,可是我也不知道为什么,在登陆后,用session取登陆用户名却取不到,我的程序... 我做的后台程序想用session来验证管理员是否为空,还有退出后台系统后,把登陆记录删除掉,可是我也不知道为什么,在登陆后,用session取登陆用户名却取不到,我的程序 :
login.asp:
<%
username = Trim(Request.Form("username"))
password = Trim(Request.Form("password"))

Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("name.mdb")
conn.Open "provider=microsoft.jet.oledb.4.0;data source="&dbpath

Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from users"
rs.open sql,conn,1,3

Do While not rs.eof
if username = rs("username") then
else
response.write "<div class='div'><span>对不起,管理员帐号错误!</span><span><a href='backlogin.asp'>点击这里返回,重新登陆!</a></span></div>"

response.End()
end if

if password = rs("password") then

else
response.write "<div class='div'><span>对不起,管理员密码错误!</span><span><a href='backlogin.asp'>点击这里返回,重新登陆!</a></span></div>"
response.End()

end if

rs.moveNext
Loop

'关闭记录集和数据库连接
rs.close
Set rs=nothing
conn.close
Set conn=nothing

Response.Cookies("username") = username
Response.Cookies("password") = password
Session("login")= "TRUE"
Session("username") = username
Session("password") = password

'转向系统主页面
Response.write "<div class='div'><span>管理员登陆成功,欢迎您!</span><span><a href='back.asp'>点击这里转到后台!</a></span></div>"
Response.End()
%>
这里都行的,到后台首页的时候就错了,取不到用户名
back_index.asp
<%
users = session("username")
km = session("password")
Response.Write(users)

if name <> "" then
Response.redirect("backlogin.asp")
Response.end()

end if
%>
请问,哪里出错了
我的那句也没问题的,就是要把登陆的管理员帐号和数据库的帐号比较一下,看看是否一样,要是一样的话就登陆成功,你们的代码里面都没有比较这个在,怎么能直接登陆后台呢,我说得对吗.
展开
 我来答
xueweijian19
2009-04-03 · TA获得超过116个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:279万
展开全部
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from users"
rs.open sql,conn,1,3

Do While not rs.eof
if username = rs("username") then
else
response.write "<div class='div'><span>对不起,管理员帐号错误!</span><span><a href='backlogin.asp'>点击这里返回,重新登陆!</a></span></div>"

response.End()
end if

这块思路就有问题
怎么能这么判断呢,你这样等于循环判断,
你应该这样:
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from users where username='"&username&"' and password='"&password&"'"
rs.open sql,conn,1,3

if rs.eof and rs.bof then
response.write "<div class='div'><span>对不起,管理员帐号错误!</span><span><a href='backlogin.asp'>点击这里返回,重新登陆!</a></span></div>"
response.End()
else
'登陆成功
end if
lzxassj
2009-04-03 · TA获得超过695个赞
知道小有建树答主
回答量:738
采纳率:0%
帮助的人:601万
展开全部
就像楼上说的,你验证这块有问题,我在给你修改下

Set rs = Server.CreateObject("ADODB.Recordset")
sql = "select * from users where username='"&username&"' and password='"&password&"'"
rs.open sql,conn,1,3

if rs.eof and rs.bof then
response.write "<div class='div'><span>对不起,管理员帐号错误!</span><span><a href='backlogin.asp'>点击这里返回,重新登陆!</a></span></div>"
response.End()
else
session("username")=username
'这里你密码就不用保存在session里了,没必要
'登陆成功
end if
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式