1. 存到memcached中, 十分简单, 在使用session之前, 加入下面两行代码

  1. int_set('session.save_handler', 'memcache');
  2. int_set('session.save_path', '127.0.0.1:11211');

2.存到数据库里面, 重新定义了session的生命周期

  1. <?php
  2. /**
  3. * Class SessionDBTool
  4. */
  5. class SessionDBTool{
  6. private $link; //数据库连接对象
  7. public function __construct(){
  8. //自定义session处理方法
  9. ini_set('session.save_handler','user');
  10. session_set_save_handler(
  11. array($this,'sess_open'),
  12. array($this,'sess_close'),
  13. array($this,'sess_read'),
  14. array($this,'sess_write'),
  15. array($this,'sess_destroy'),
  16. array($this,'sess_gc')
  17. );
  18. //开启session
  19. @session_start();
  20. }
  21.  
  22. //开启session
  23. public function sess_open(){
  24. $this->link = MYSQLDB::getInstance($GLOBALS['config']['database']);
  25. //mysql_connect('localhost','root','root');
  26. //mysql_query('use shop');
  27. }
  28. public function sess_close(){
  29. return true;
  30. }
  31.  
  32. //读取session
  33. public function sess_read($sess_id){
  34. $time = time();
  35. $expire = ini_get('session.gc_maxlifetime');
  36. $sql="select sess_data from it_session where sess_id='$sess_id' and $time - time < $expire";
  37. if($row=$this->link->fetchRow($sql)){
  38. return $row['sess_data'];
  39. }else{
  40. return '';
  41. }
  42. }
  43.  
  44. //写入session
  45. public function sess_write($sess_id,$sess_data){
  46. $expire=time();
  47. //存在则更新
  48. $sql = "replace into it_session values('$sess_id','$expire', '$sess_data')";
  49. return $this->link->myquery($sql);
  50. }
  51.  
  52. //销毁
  53. public function sess_destroy($sess_id){
  54. $sql="delete from it_session where sess_id='$sess_id'";
  55. return $this->link->myquery($sql);
  56. }
  57.  
  58. //垃圾回收, 可以设置概率
  59. public function sess_gc($ttl){
  60. $now = time();
  61. $last = $now -$ttl;
  62. //删除过期session
  63. $sql = "delete from it_session where expire < $last";
  64. return $this->link->myquery($sql);
  65. }
  66. }

session 丢失问题的更多相关文章

  1. Linux下Session丢失原因

    最近碰到一个问题,把代码迁移到linux系统下,重新搭建php环境,运行代码, 在登录页面时,不能访问后台,会返回到登录页面,对代码测试,没有报任何错误, 最后检查到是跳转时,session丢失的问题 ...

  2. 解决nginx中proxy_pass到tomcat的session丢失问题

    之前在配置tomcat的时候都是一个项目对应一个tomcat,也就是一个端口.最近需要把两个项目整合到同一个tomcat中,通过配置nginx让两个域名指向同一tomcat的不同项目.整合完毕后发现其 ...

  3. Windows下Apache + PHP SESSION丢失的惨痛经历

    今天的工作是迁移一个PHP站点至新服务器. 创建一台Windows Server 2008虚拟机,并在其上停掉net stop http服务(避免争抢80端口),安装配置 Apache + PHP,迁 ...

  4. ASP.NET 状态服务 及 session丢失问题解决方案总结

    ASP.NET2.0系统时,在程序中做删除或创建文件操作时,出现session丢失问题.采用了如下方法:1.asp.net Session的实现:asp.net的Session是基于HttpModul ...

  5. web跨域访问,session丢失的问题

    web跨域访问,session丢失的问题25 http://www.iteye.com/problems/71265 http://www.iteye.com/topic/264079 具体情况如下: ...

  6. session 丢失和解决方案

    在ASP.NET的开发中,总遇到Session丢失.最常见的情况是当用户登录后将用户信息保存在Session中例如Session["user"]=user;在其后的页面中检查Ses ...

  7. Spring Boot+AngularJS中因为跨域导致Session丢失

    http://blog.csdn.net/dalangzhonghangxing/article/details/52446821 如果还在为跨域问题烦恼,请查看博主的 解决angular+sprin ...

  8. asp.net 修改/删除站内目录操作后会导致Session丢失

    http://www.jb51.net/article/21770.htm http://blog.chinaunix.net/uid-7425507-id-134216.html 在Web项目中使用 ...

  9. Session丢失的解决办法小结

    最近在做ASP.NET项目时,测试网站老是取不出Session中的值,在网上搜索了一下,找到一些解决方法,记录在这里.最后使用存储在StateServer中的办法解决了问题. SessionState ...

  10. 解决网站在负载均衡环境下SESSION丢失的问题

    在WEB场中,动态网页往往会因为几台主机做了负载而产生SESSION丢失的问题,网上也有很多的介绍,我这里只将我经历的过程给大家分享一下:   系统要运行在负载平衡的 Web 场环境中,而系统配置文件 ...

随机推荐

  1. 系统非正常关机启动后出现:an error occurred during the file system

    现象描述: 1.系统ssh登录报Too many open files in system,系统登录不进去,就直接强制关机了,开机后出现(2)的错误: 由于文件描述符用完了,需要把fs.file-ma ...

  2. dockfile

    dockerfile是对镜像的描述 新建一个dockfile文件 docker inspect

  3. Python之 Django 初级

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  4. java MD5Utils 加密工具类

    package com.sicdt.library.core.utils; import java.io.File; import java.io.FileInputStream; import ja ...

  5. 【HackerRank】Sherlock and MiniMax

    题目连接:Sherlock and MiniMax Watson gives Sherlock an array A1,A2...AN. He asks him to find an integer  ...

  6. Linux 调优

    一.系统优化 1.硬件优化 增加内存 更换速度跟高磁盘(sata->sas)可以增加固态硬盘 更换更高校率的网卡,或者双网卡绑定,两个网卡作为一个网卡使用.服务器网卡一般为千兆 2.系统层优化 ...

  7. jQuery仿Android锁屏图案应用

    在线演示 本地下载

  8. linux下安装jsp开发运行环境(centos7)

    1 开发环境包括 1)apache-tomcat 2)java-jdk 3)mysql 2 apache-tomcat安装(应该先装java再装tomcat) 1)到官网下载最新版本(不建议用yum安 ...

  9. URI Is Not Registered

    使用IntelliJ Maven生成archetype时候,偶然会出现xml文件的头定义提示错误 URI is not registered 例如: 解决方法: 鼠标点击红色字,然后Intellij出 ...

  10. 医院Android项目总结

    Eclipse ADT 配置AVD 1.layout布局:xml 如ck_report.xml     <Text view ...android:id="ck"> & ...