骂人的藏头诗:为什么我上传空间后SESSION变的只有几秒钟?

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/10 19:30:48
我是做的个人网站,用SESSION验证后台管理.timeout设置的是60分钟啊~
还有后台管理页面存放应该是和主页面同级吗?
我是这么写的!您帮我看下哪里有毛病啊~我在本机测试时SESSION时间基本正常~上传后就不行了
<%
msg=""
user=trim(request("user"))
if user<>"" then
sql="select * from user where user='" & user & "'"
set rs=conn.execute(sql)
if rs.eof=false then
pwd=trim(request("pwd"))
if pwd=rs("pwd") then
session.timeout=60
session("key")=true
response.redirect "gl.asp"
else
msg="用户名或密码错误!"
end if
else
msg="用户名或密码错误!"
end if
rs.close
set rs=nothing
end if
%>

一般来讲,先判断验证码----用户名及密码是否为空---验证用户名和密码与数据库数据对比---然后

Set Rs=Conn.Execute("Select id,Name,Pass From [user] where [Name]='"&NameGet&"' and [Pass]='"&PassGet&"'")
If Not(Rs.Bof And Rs.Eof) Then '若找到数据则运行下面
Session.Timeout=30 'SEESION有效时间为30分钟
'将用户资料记录到各自的Session变量中
Session("ID")=Cstr(Rs("id"))
Session("Name")=Rs("Name")
Session("Pass")=Rs("Pass")
Else
Rs.Close
Set Rs=Nothing
Response.Write"<script language='javascript'>alert('您输入的用户名或者密码错误!');history.back();</script>"
Response.End
End If
Rs.Close
Set Rs=Nothing

不需要将Session("IsLogin") = "Yes"

===============================================
你的程序逻辑蛮混乱的
Session.TimeOut=120 因该在验证码和用户名及密码都通过后再设置,而不是一开始就设置
另外
If Rs("Admin_Pwd") = Md5(Ay_AdminPwd) Then
这个根本没必要,看下我贴出的程序源码,可以直接在SELECT中判断
还有
Session("IsLogin") = "Yes"就是相当与一个钥匙,但这把钥匙没任何锯齿,这种判断登陆一点都不安全.要是在虚拟主机上的话很简单就会被SEESION欺骗过去而得到后台权限
再有
Rs("Admin_LoginNumber") = Rs("Admin_LoginNumber") + 1
后台登陆还要记录次数?拿积分吗?
最后
Session.TimeOut=120
你可以先自己调试一下,比如Session.TimeOut=1
然后看下1分钟后SEESION是否会被清空,要是设置了120分钟,但实际没有到达的话那就可能是IIS中的设置了时间强制清空,一般默认情况是以页面中的Session.TimeOut来确定清空时间的,否则就是当页面关闭后会自动清空SEESION
要是你用的是IE的话那也有可能是你开了多个IE窗口,而你关闭其中一个后那么其它IE窗口的SEESION就失效了
建议使用多窗口浏览器,如MAXTHON