CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

100分寻求session的解决方法

楼主cknuke(dreamdesign)2002-04-14 11:43:26 在 Web 开发 / PHP 提问

首先,我将session使用数据库存储  
  当我以一用户   user   登录后   即拥有一个唯一sessionid  
   
  然后在一段时期内不进行任何动作,直到session失效。  
   
  然后再次登录时,出现问题:  
        1.   提交登录信息后的页面能够显示用户信息  
        2.   但当下一次页面显示时,信息丢失,要求重新登录  
   
  经过分析得知:  
        session失效后,用户所在的sessionid仍然存在,然已经失效,因此,无法写入任何信息。  
        最终导致用户无法注册进入。  
   
  自己试着解决方案:  
        1.首先判断session   是否失效,是   则创建新的sessionid。结果成功写入信息,但当进入下一页时,浏览器所记住的仍然是先前失效的sessionid。所以最终失败。  
        2.改变session_name,用了之后仍然无效。  
   
  望各位老大赐教! 问题点数:100、回复次数:6Top

1 楼jamsband(东子)回复于 2002-04-14 13:42:15 得分 34

你说的我不是太明白,既然创建一个新的以后,你进入下一页就应该自动使用新的sessionid呀,怎么可能记住先前失效的那个呢,我不知道你是如何操作的,但是我觉得不应该Top

2 楼zaowei21(水里的乌鸦)回复于 2002-04-14 13:42:22 得分 33

你每次用SESSION_START就会分配一个ID给你,而且每次都不一样的。  
  只要你一关窗口,它就公失效的哇。  
  而且就算是SESSION_ID在你也是可以写入信息的。  
  你可以在每次打开页面是先注销所有的变量哇。  
  ================================================================  
   
  CSDN   论坛助手   Ver   1.0   B0402提供下载。   改进了很多,功能完备!  
   
  ★     浏览帖子速度极快![建议系统使用ie5.5以上]。   ★     多种帖子实现界面。    
  ★     保存帖子到本地[html格式]★     监视您关注帖子的回复更新。  
  ★     可以直接发贴、回复帖子★     采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!    
  ★     支持在线检测程序升级情况,可及时获得程序更新的信息。  
   
  ★★   签名     ●      
            可以在您的每个帖子的后面自动加上一个自己设计的签名哟。  
   
  Http://www.ChinaOK.net/csdn/csdn.zip0D Http://www.ChinaOK.net/csdn/csdn.rar0D Http://www.ChinaOK.net/csdn/csdn.exe         [自解压]  
   
  Top

3 楼cknuke(dreamdesign)回复于 2002-04-14 15:43:31 得分 0

1.我有一个单独的session.inc文件是被调用文件,其他所有文件均调用此文件。session.inc中拥有session_start    
  2.这种情况的存在会给用户造成很大的麻烦,因为用户不可能   大概也想不到去重新开一次浏览器吧,特别是对于多窗口浏览器,实在是就更麻烦了。  
  3.当用户登录时,即拥有一个sessionid,同时,服务器也在客户端创建了一个名为session_name()的cookie。所以我认为,当久不动作session失效,但浏览器未关闭时,客户端仍然通过cookie名强制要求访问那个失效的session   ,从而导致即使创建了新的sessionid   仍然不能被访问。  
   
  各位高手,不知我的见解是否正确,热诚希望大家共同探讨。  
   
  再强调一点:我使用的是数据库保存session数据的方法。  
   
  我现在又想到的一个解决方法是   使用cookie改变客户端的数据(这是迫不得已的)。  
  Top

4 楼wasy(嘻嘻哈哈)回复于 2002-04-14 17:19:35 得分 33

應該在將php.ini中:  
  將cookie保存sessionid的生命設置為0  
   
  如下:  
  session.cookie_lifetime   =   0  
  Top

5 楼cknuke(dreamdesign)回复于 2002-04-14 17:32:50 得分 0

很抱歉,session.cookie_lifetime是设为0了的。  
   
  本来我也以为是我自己的设置有问题,但当我上传到了服务器(虎翼的机子)上,却发现问题仍然存在。Top

6 楼cknuke(dreamdesign)回复于 2002-04-15 16:55:25 得分 0

现成功解决。  
      方法如下:  
        在每次session_start()之前,均调用函数清除数据库中的过时sessionid。  
        谢谢大家的参与,一点分数   不成敬意Top

相关问题

  • 寻求反跟踪方法
  • 寻求解答方法
  • 急,寻求解决方法?
  • 寻求chili!ASP的破解方法
  • 寻求access2000数据库破解方法
  • help!!!寻求web页解决方法?
  • help!!!寻求web页解决方法?
  • *********************寻求好的解决方法?*******************
  • *********************寻求好的解决方法?*******************
  • 严重寻求”最好“解决方法!!!!!!!!

关键词

  • .net
  • 解决
  • 用户
  • 浏览器
  • 文件
  • 数据库
  • csdn
  • 页面
  • 客户
  • 信息

得分解答快速导航

  • 帖主:cknuke
  • jamsband
  • zaowei21
  • wasy

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo