清除session时的一个小bug

编    写:袁    亮
时    间:2014-09-23
说    明:清除session时的一个小bug

1、清除所有session,不能使用unset($_SESSION);
单个session可以通过unset来删除,比如unset($_SESSION['GOODS']);
session的过程是在php执行session_start的时候,先查看cookie中是否有相应的sessionid
如果有,则将对应session名中的值,取出来,反序列化,变成一个php全局变量$_SESSION
执行过程中,session变量可以随意改变
脚本结束后,将session变量序列化,然后回写到对应sessionid中(这个时候,如果没有相应全局变量应该不会回写,从而导致该问题)

2、session常见优化:
开启session之后,访问量稍微大点,web服务器的IO压力就会急剧上升,因为默认是通过文件形式来做session的读写
一个简单的优化办法就是将session的存储方式改成Memcache形式,将php.ini中所有的session设置去除,加一下三行即可
[Session]
session.save_handler = memcache
session.save_path=tcp://192.168.0.106:11216

发表评论