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
%>
请问,哪里出错了
我的那句也没问题的,就是要把登陆的管理员帐号和数据库的帐号比较一下,看看是否一样,要是一样的话就登陆成功,你们的代码里面都没有比较这个在,怎么能直接登陆后台呢,我说得对吗. 展开
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
%>
请问,哪里出错了
我的那句也没问题的,就是要把登陆的管理员帐号和数据库的帐号比较一下,看看是否一样,要是一样的话就登陆成功,你们的代码里面都没有比较这个在,怎么能直接登陆后台呢,我说得对吗. 展开
2个回答
展开全部
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
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
展开全部
就像楼上说的,你验证这块有问题,我在给你修改下
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询