我对在PHP
中使用session_start
有些困惑。我应该在我的脚本中使用它,当用户最初创建会话和在后续查询中恢复会话时-或者仅在创建时?
当前,当会话已经存在时,我不调用它,但我发现会话有时会意外地快速过期:
例如,从我的网站的公共日志中,我看到:
srinivasvarma678 09:14:34 27-Jun-14
I've just logged in...
...
srinivasvarma678 08:59:38 27-Jun-14
I'm proud to tell I've just solved Vowel Count!
。用户与站点的最后一次交互是在8:59,然后在15分钟内他需要再次登录(尽管session.gc_maxlifetime=1440
)
这种行为可以解释的事实,我没有调用session_start
每次?
简短回答:是
如PHP文档中所述:
session_start() creates a session or resumes the current one based on a
session identifier passed via a GET or POST request, or passed via a cookie.
所以如果你想要continue
会话,你应该总是使用session_start()
在每个页面…
session_start()允许您在脚本中使用会话。
在创建新会话或重用现有会话时都应该使用它。
它还更新会话,使其不会被垃圾收集和删除