做我的博客的时候,突然发现一个问题.
比如我登陆了后台,也登陆了前台,因为前后台存入session的时候,没有指定作用域.退出后台登录时使用session(null)对session清除的话,前后台的session都会被清空,所以此时再刷新前台,会退出登录。
想要解决这个问题,有很多办法,比如后台退出的时候,对指定的session值进行删除.但是又会出现前后台的session名称不能设置为一样的问题.假设设置为名称一样,那么删除的时候还是会影响到前台页面。
最终解决办法,前后台分别设置session作用域。
比如我前台使用助手函数存入:session('username','小安','index');
//仔细阅读tp5手册就会发现,第三个参数就是用来指定作用域的
//此时 index 称为该session值的作用域
那么后台存入session就可以这样:session('username','后台账号','admin');
//此时 admin 称为该session值的作用域
读取指定作用域的session值session('username','','admin');
//此时第二个参数留空,最后一个参数填写要读取哪个session作用域下的值
删除session时,删除一个作用域下的所有sessionsession(null,'admin');
也能删除一个作用域下指定的session值,session('name', null);
这样就完美的解决前后台不能设置同名session的问题啦。
----原文作者:小安博客(http://www.beyond99.cn) ,转载请注明。