关于session变量时效性的问题

lvconghua 2003-05-11 03:55:48
我要在首页实现这个的功能,用户没有登录进去时,显示用户名和密码输入框等,登录进去后,这里就改成显示用户的相关资料,用户退出后又改成显示用户名和密码输入框。
首页文件名是 index.asp 调用了user_login.asp 来实现这个功能,另外一个是退出的程序,logout.asp.

先看user_login.asp 代码:
<%
if session("jsys_user")="" then
%>
显示用户名和密码的的输入框等,(代码略)
<%else....显示用户的一些资料
document.write(" <td height=\"25\" align=\"center\"><a href=\"logout.asp\"><strong>退出登录</strong></a></td>");
%>

用户登录检查程序:check_user.asp

<%.....(检查验证略)
session("jsys_user")=UserName
response.redirect "index.asp"

%>

退出程序 logout.asp

<% session("jsys_user")=""

response.redirect "index.asp"%>

登录进去很正常。退出时,session("jsys_user")=""经常检查是为空,但是返回到index.asp页面后,还是显示用户的相关资料而不是用户名的密码的输入框。

测试环境:WIN2000SERVER+MSSSQL2000+IIS5。在WIN2000专业版下面,我自己电脑上正常。别人访问就一样有问题。

...全文
65 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvconghua 2003-05-11
  • 打赏
  • 举报
回复
终于搞定,谢谢各位,总结一下,SESSION 及缓存的问题 和程序及IIS的配置有关,个人认为最好不要在IIS上把缓存关了,可在需在清除缓存的页面的上面加上下面的语句。

Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "No-Cache"
lvconghua 2003-05-11
  • 打赏
  • 举报
回复
up
esaler 2003-05-11
  • 打赏
  • 举报
回复
up
lvconghua 2003-05-11
  • 打赏
  • 举报
回复
谁还有办法呀
lvconghua 2003-05-11
  • 打赏
  • 举报
回复
超级奇怪,上面的程序,在win2000专业版下,在服务器上测试没有问题,在客户那边说不行,但在win2000SERVER下面,都不行。。
lvconghua 2003-05-11
  • 打赏
  • 举报
回复
楼上的朋友,怎样在程序里,没有设置不写入缓存,
cpio 2003-05-11
  • 打赏
  • 举报
回复
这不是SESSION没有清空,是你没有设置不写入缓存,这样可以后退,但不能刷亲

如果刷新会出现密码框
lvconghua 2003-05-11
  • 打赏
  • 举报
回复
Response.Write "<script Language=Javascript>alert('"&session("jsys_user")&",您现在可以安全退出了 !^_^');location.href = 'index2.asp';</script>"

Response.Write "<script Language=Javascript>location.href = 'index2.asp';</script>"


logout.asp执行了,session("jsys_user")也为空,估计应该是缓存的问题把那个user_login.asp 缓存在客户端了,怎样设置才不会把这个文件级存呢。
杨小杨 2003-05-11
  • 打赏
  • 举报
回复
用COOKIE啊!

看看我的这个跟你所要实现的那个有什么区别

www.polo-007.com/host/

页面的上部就有一登录对话框
lvconghua 2003-05-11
  • 打赏
  • 举报
回复
刷新一下!
把浏览器的所有临时文件删掉,
再打开看看

这样可以问题解决,但在程序里有办法解决吗,不需要让客户端去删除临时文件。就能退出。
lvconghua 2003-05-11
  • 打赏
  • 举报
回复
那怎样把缓存的问题解决呢。我在IIS上面没有选“启用缓存”,也不行。
xuya 2003-05-11
  • 打赏
  • 举报
回复
刷新一下!
把浏览器的所有临时文件删掉,
再打开看看
hillhero789 2003-05-11
  • 打赏
  • 举报
回复
在user_login.asp
最前芳加入response.write session("jsys_user")看看你的session值
还有你的logout是不是确认已经被执行呢?
不行的话再贴代码吧
lvconghua 2003-05-11
  • 打赏
  • 举报
回复
我在logout.asp


加了session.abandon()

还是不行,有别的办法,或是其它方面的问题吗。
xuya 2003-05-11
  • 打赏
  • 举报
回复
是缓存的问题
xuya 2003-05-11
  • 打赏
  • 举报
回复
session有时间期限的,默认是20分钟
可以用session.abandon()释放所有session变量

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧