为了账号安全,请及时绑定邮箱和手机立即绑定

检查PHP会话是否已经启动

检查PHP会话是否已经启动

PHP
慕尼黑5688855 2019-06-19 17:18:43
检查PHP会话是否已经启动我有一个PHP文件,有时从已启动会话的页面调用,有时从未启动会话的页面调用。所以当我有session_start()在这个脚本中,我有时会收到“会话已经启动”的错误消息。为此,我把这些台词:if(!isset($_COOKIE["PHPSESSID"])){   session_start();}但这一次我收到了一个警告信息:注意:未定义变量:_session是否有更好的方法来检查会话是否已经开始?如果我用@session_start它会不会使事情正常运作,并关闭警告?
查看完整描述

3 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

对于PHP 5.4.0之前的版本:

if(session_id() == '') {
    // session isn't started}

不过,IMHO,如果您不知道会话是否已启动,则应该考虑重构会话管理代码.

尽管如此,我的意见是主观的,在有些情况下(下文的评论中介绍了其中的例子),可能无法知道会议是否开始。


查看完整回答
反对 回复 2019-06-19
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

PHP 5.4会话状态(),这比依赖session_id().

考虑以下片段:

session_id('test');var_export(session_id() != ''); // true, but session is still not started!var_export(session_status() == PHP_SESSION_ACTIVE);
 // false

因此,要检查会话是否已启动,PHP 5.4中推荐的方法是:

session_status() == PHP_SESSION_ACTIVE


查看完整回答
反对 回复 2019-06-19
  • 3 回答
  • 0 关注
  • 1074 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信