php session 不稳定怎么办

藏色散人
发布: 2020-08-24 09:57:07
原创
2720人浏览过
php session不稳定的解决办法:首先在配置文件中设置sessionState节点;然后把类设为可序列化的类;最后启动“asp.net state service”即可。

php session 不稳定怎么办

推荐:《PHP视频教程

解决session不稳定的问题

     公司的系统一直以来都会出现session突然丢失的情况,昨天想了一个法子,但行不通,今天上午通过搜索资料解决了它。

     昨天我是想通过新建一个数据表来存储用户登录的信息,但是,要标记一个用户的时候,想用IP来标记,觉得不太现实,因为有时候对外网的IP地址是一样的,于是想用MAC地址来解决,对过sendarp的方法可以得到指定IP的MAC,但是这也仅仅适用于局域网,非局域网是无法实现的,于是这种思路到此宣告破产。除非在客户端通过js去获取再发送到服务端,但考虑到不用客户端cookiess的话每次都要查很麻烦,于是放弃。

立即学习PHP免费学习笔记(深入)”;

     今天在网上发现,可以在配置文件中设置sessionState节点:

   <sessionState mode="Off|InProc|StateServer|SQLServer"
              cookieless="true|false"
              timeout="number of minutes"
              stateConnectionString="tcpip=server:port"
              sqlConnectionString="sql connection string"
              stateNetworkTimeout="number of seconds"/>
登录后复制

 必须有的属性是

轻舟办公
轻舟办公

基于AI的智能办公平台

轻舟办公194
查看详情 轻舟办公
属性      选项             描述 
mode                       设置将Session信息存储到哪里 
            Off              设置为不使用Session功能 
            InProc          设置为将Session存储在进程内,就是ASP中的存储方式,这是默认值。 
            StateServer  设置为将Session存储在独立的状态服务中。 
            SQLServer    设置将Session存储在SQL Server中。
登录后复制

可选的属性是:

属性             选项                             描述 
cookieless                                        设置客户端的Session信息存储到哪里 
                   ture                             使用Cookieless模式 
                   false                             使用Cookie模式,这是默认值。 
                   timeout                        设置经过多少分钟后服务器自动放弃Session信息。默认为20分钟 
                   stateConnectionString    设置将Session信息存储在状态服务中时使用的服务器名称和端口号,例如:"tcpip=127.0.0.1:42424”。当mode的值是StateServer是,这个属性是必需的。 
        sqlConnectionString        设置与SQL Server连接时的连接字符串。例如"data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。当mode的值是SQLServer时,这个属性是必需的。 
        stateNetworkTimeout    设置当使用StateServer模式存储Session状态时,经过多少秒空闲后,断开Web服务器与存储状态信息的服务器的TCP/IP连接的。默认值是10秒钟。
登录后复制

     然后,启动asp.net state service。

     注意要把类设为可序列化的类!才可以加到session中。

 

      System.Web.SessionState.HttpSessionState session = HttpContext.Current.Session;
      session.Add("user", obj);
      HttpContext.Current.Session.Add("user", obj);
      if (obj.USER_DIST_ID == "0000")
      {
             HttpContext.Current.Session.Add("sDistID", obj.USER_DIST_ID);
       }
      System.Web.Security.FormsAuthentication.SetAuthCookie(obj.USER_ID , false);
     。。。
登录后复制

以上就是php session 不稳定怎么办的详细内容,更多请关注php中文网其它相关文章!

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号