问题一:多个登录系统session需不需要分开存储?
比如有会员登录系统和管理员登录系统,但是如果既是管理员又是会员的话就会存在session混乱的状况,比如前台的登录生存时间是20分钟,后台是30分钟,但是如果session没有分开的话,导致sessionID会相同,覆盖掉生存时间
所以我是分两个表存储session的,admin_session和home_session两个表
问题二:看过很多教程都是说验证码存入session,但是可能是没有考虑到多个验证码的话有效期就比较难控制了,例如短信验证码是5分钟,邮箱验证码是20分钟,这样的话就没有办法通过session的生存时间去控制每个验证码的有效期了,当然有更好的方法,比如memcache或者redis这种key-value的存储,但是由于我的CMS是面向中小网站的,大多数是租用虚拟空间的,搭建这样的环境就比较困难了,所以我的解决方法是,将session存储到数据库中,session里面的数据有关联数组来存,例如
$_SESSION=array{
code=array{
life_time:300,
update_time:100000,
value=jkdkeusdkljjksjfie1456
},
code2=array{
life_time:1200,
update_time:100000,
value=jkdkeusdkljjksjfie1456
},
uid=1000
}这样利用session的回调函数,在读取session的时候先检查里面的code和code2有没有过期,如果过期了就删除掉,然后写入session的时候也检查一下,并且把session的生存时间设为里面子数组中最大的生存时间:1200,这样在code2没有过期之前session也不会被删除掉,但是不知道这样做合不合理希望大神们可以分享一下你们的做法可以借我参考一下
最佳答案