新版session问题求助

#1 gin

各位大佬,容我问个小白的问题,我看了新版手册上session章节,原话为”新版sp框架中,session_start()默认没有开启,如果需要开启,请把session_start()放在init()或者入口文件内。”我在入口文件index.php加入session_start(),但同一个控制器的不同页面无法调取$_SESSION['name'],$_SESSION应该是全局数组,理论上应该可以调用。

然后我又在该控制器的继承类BaseController里写了个init函数,并加入session_start(),这个时候$_SESSION又可以调用了。
虽然可以使用session了,但还是不明白为什么在入口文件加了没起作用,望各位大佬指教!谢谢!

2018-08-16 22:27:25

#2 gin

2.jpg

2018-08-16 22:45:10

#3 gin

貌似我试了下把session_start();加到require上面就可以了,需要在框架文件的前面开启session吗?

2018-08-16 22:51:27

#4 jake

这里的index.php是按顺序执行的,require是执行框架以及你的代码的过程,如果在这之后再加上的代码(如session_start)那么是在你的代码执行之后再生效,其实也就是不生效了。
像这类代码,一般建议是放在config.php开头的位置。而init主要是针对单个modules的,所以不一定是全局生效的。

2018-08-17 08:41:44

#5 gin

jake 发表于 2018-8-17 08:41
这里的index.php是按顺序执行的,require是执行框架以及你的代码的过程,如果在这之后再加上的代码(如sess ...
谢谢jake大大指导:victory:

2018-08-17 08:53:05

#6 gin

jake 发表于 2018-8-17 08:41
这里的index.php是按顺序执行的,require是执行框架以及你的代码的过程,如果在这之后再加上的代码(如sess ...
sp源码没认真看,导致发生这种小白问题,真是不好意思,以后还是得认真阅读框架源码,抱歉抱歉

2018-08-17 09:00:52