session 丢失问题
1. 存到memcached中, 十分简单, 在使用session之前, 加入下面两行代码
int_set('session.save_handler', 'memcache');
int_set('session.save_path', '127.0.0.1:11211');
2.存到数据库里面, 重新定义了session的生命周期
<?php
/**
* Class SessionDBTool
*/
class SessionDBTool{
private $link; //数据库连接对象
public function __construct(){
//自定义session处理方法
ini_set('session.save_handler','user');
session_set_save_handler(
array($this,'sess_open'),
array($this,'sess_close'),
array($this,'sess_read'),
array($this,'sess_write'),
array($this,'sess_destroy'),
array($this,'sess_gc')
);
//开启session
@session_start();
} //开启session
public function sess_open(){
$this->link = MYSQLDB::getInstance($GLOBALS['config']['database']);
//mysql_connect('localhost','root','root');
//mysql_query('use shop');
}
public function sess_close(){
return true;
} //读取session
public function sess_read($sess_id){
$time = time();
$expire = ini_get('session.gc_maxlifetime');
$sql="select sess_data from it_session where sess_id='$sess_id' and $time - time < $expire";
if($row=$this->link->fetchRow($sql)){
return $row['sess_data'];
}else{
return '';
}
} //写入session
public function sess_write($sess_id,$sess_data){
$expire=time();
//存在则更新
$sql = "replace into it_session values('$sess_id','$expire', '$sess_data')";
return $this->link->myquery($sql);
} //销毁
public function sess_destroy($sess_id){
$sql="delete from it_session where sess_id='$sess_id'";
return $this->link->myquery($sql);
} //垃圾回收, 可以设置概率
public function sess_gc($ttl){
$now = time();
$last = $now -$ttl;
//删除过期session
$sql = "delete from it_session where expire < $last";
return $this->link->myquery($sql);
}
}
session 丢失问题的更多相关文章
- Linux下Session丢失原因
最近碰到一个问题,把代码迁移到linux系统下,重新搭建php环境,运行代码, 在登录页面时,不能访问后台,会返回到登录页面,对代码测试,没有报任何错误, 最后检查到是跳转时,session丢失的问题 ...
- 解决nginx中proxy_pass到tomcat的session丢失问题
之前在配置tomcat的时候都是一个项目对应一个tomcat,也就是一个端口.最近需要把两个项目整合到同一个tomcat中,通过配置nginx让两个域名指向同一tomcat的不同项目.整合完毕后发现其 ...
- Windows下Apache + PHP SESSION丢失的惨痛经历
今天的工作是迁移一个PHP站点至新服务器. 创建一台Windows Server 2008虚拟机,并在其上停掉net stop http服务(避免争抢80端口),安装配置 Apache + PHP,迁 ...
- ASP.NET 状态服务 及 session丢失问题解决方案总结
ASP.NET2.0系统时,在程序中做删除或创建文件操作时,出现session丢失问题.采用了如下方法:1.asp.net Session的实现:asp.net的Session是基于HttpModul ...
- web跨域访问,session丢失的问题
web跨域访问,session丢失的问题25 http://www.iteye.com/problems/71265 http://www.iteye.com/topic/264079 具体情况如下: ...
- session 丢失和解决方案
在ASP.NET的开发中,总遇到Session丢失.最常见的情况是当用户登录后将用户信息保存在Session中例如Session["user"]=user;在其后的页面中检查Ses ...
- Spring Boot+AngularJS中因为跨域导致Session丢失
http://blog.csdn.net/dalangzhonghangxing/article/details/52446821 如果还在为跨域问题烦恼,请查看博主的 解决angular+sprin ...
- asp.net 修改/删除站内目录操作后会导致Session丢失
http://www.jb51.net/article/21770.htm http://blog.chinaunix.net/uid-7425507-id-134216.html 在Web项目中使用 ...
- Session丢失的解决办法小结
最近在做ASP.NET项目时,测试网站老是取不出Session中的值,在网上搜索了一下,找到一些解决方法,记录在这里.最后使用存储在StateServer中的办法解决了问题. SessionState ...
- 解决网站在负载均衡环境下SESSION丢失的问题
在WEB场中,动态网页往往会因为几台主机做了负载而产生SESSION丢失的问题,网上也有很多的介绍,我这里只将我经历的过程给大家分享一下: 系统要运行在负载平衡的 Web 场环境中,而系统配置文件 ...
随机推荐
- VMware虚拟机NAT模式的具体配置
NAT模式的具体配置 NAT方式:虚拟机可以上外网,可以访问宿主计算机所在网络的其他计算机(反之不行). 1.1.1. 查看虚拟机的网络参数 1) 打开虚拟机,选择菜单&q ...
- python之路:进击的小白
1.hello world print("hello world") 2.变量定义的规则 变量名只能是 字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 以下关键字不能声 ...
- 建议42:使用pandas处理大型CSV文件
# -*- coding:utf-8 -*- ''' CSV 常用API 1)reader(csvfile[, dialect='excel'][, fmtparam]),主要用于CSV 文件的读取, ...
- Shell 语句
一 test 测试: 测试命令 test [ ] [[ ]] (( ))打开man test 逐一介绍每个参数 浮点计算:echo 'scale=2;1/3'|bc -l 测试操作命令执行后会返回到 ...
- apache2.4配置ssl
1,yum 安装openssl和openssl-devel,httpd-devel2,生成证书(也可以从公司的证书颁发机构获取): #建立服务器密钥 openssl genrsa -des3 > ...
- SQL单行函数和多行函数
单行函数和多行函数示意图: 单行函数分为五种类型:字符函数.数值函数.日期函数.转换函数.通用函数 单行函数: --大小写控制函数 select lower('Hello World') 转小写, u ...
- 常用display属性
table 1. 宽高由内容撑开 2.独占一行 3.可设置宽高 4.可设置margin.padding inline-table 与display: table大体一致,区别在于不独占一行,为行内元素 ...
- 20145222黄亚奇 《网络对抗技术》 MAL_逆向与Bof基础
学习目的 通过一些方法,使能够运行本不该被运行的代码部分,或得到shell的使用: 将正常运行代码部分某处call后的目标地址,修改为另一部分我们希望执行.却本不应该执行的代码部分首地址(这需要我们有 ...
- PHP 面向对象及Mediawiki 框架分析(一)
此文是一JAVA哥大神写的,虽然他不懂PHP.我这人PHP半桶水,面向对象更是半桶水都没有,此文原本是为了让我理解MediaWiki的运行机制的,愣是用他的JAVA的面向对象知识,对Mediawiki ...
- Qt下TCP编程
一.服务器 1.声明一个QTcpServer对象 QTcpServer* serverListener; 2.new出对象 this->serverListener = new QTcpServ ...