php会话原理,php会话(session)实现原理

先考虑如下问题:

禁用了cookie,session能否使用?

如何把session存储数据库/memcached/redis

如何实现一个严格的30分钟过期的会话?、

如何实践web服务器集群的会话共享?

如何实现两个不同域站点的会话共享?

答: 能!

cookie和session的关系

cookie传递session_id,供服务器决定session文件.

所以只要能向服务器传递session_id,session就能正常使用.

而cookie只是传递session_id的一种方式而已.

用url也能传递session_id

php.ini 配置如下:

session.use_only_cookies = 0

session.use_trans_sid = 1

OK了.

实现代码:

class sess {

protected static $mem = null;

public static function open() {

if(self::$mem === null) {

self::$mem = new memcache();

self::$mem->connect(‘localhost‘ , 11211);

}

}

public static function close() {

self::$mem->close();

}

public static function read($id) {

return self::$mem->get($id);

}

public static function write($id , $data) {

return self::$mem->add($id,$data , false);

}

public static function destroy($id) {

return self::$mem->delete($id);

}

public static function gc($lifetime) {

//

}

}

session_set_save_handler(‘sess::open‘, ‘sess::close‘, ‘sess::read‘, ‘sess::write‘, ‘sess::destroy‘, ‘sess::gc‘);

原文:http://www.cnblogs.com/lauhp/p/7999496.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值