thinkphp中关于session的使用
在LoginController中设置了session(‘eid’,$oo['eid']),其中$oo['eid']的值是从数据库中取出的,确定有值。当在另一个控制器中用$ee = session('eid')的获取这个eid的值的时候,发现获取不到。session不是全局变量吗?为什么在两个不同的控制器中不能共同使用定义好的session的值呢?麻烦大家知道的帮忙回答一下,非常感谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
打印下是不是根据控制器加了前缀
直接打印$_SESSION看看里面有没有,可能tp设置了前缀....
1.用session('?eid')看看是否值是否已经设置
2.session取值是否少了引号
3.看看session是否被删除
使用$_SESSION来查看所有的session信息
首先,有几点问题在你的问题中没有描述清楚。
1、您使用的TP版本,3 OR 5?
2、本地环境 OR 线上环境?
3、是否使用了Nginx等反向代理?
4、是否受权限影响,没有将session信息写入session存储媒介内
以下针对以上几点的假设做分析
1、如为TP5,则SESSION存在作用域的概念,确保你的session读和session写是在同一个作用域。
thinkphp5.0 session参考链接
2、如果使用了Nginx等反向代理,确保每次请求均访问同一台服务器。
如果是多台服务器,请在upstream中,增加ip_hash
nginx配置ip_hash参考链接
3、确保当前环境拥有写入权限,不论是本地开发环境,还是线上生产环境,请在php.ini确认session存储位置,并确认拥有写入权限。
php无法保存Session的参考链接
以上分析希望对您有所帮助或者学习价值,纯属手打