一尘不染

检查PHP会话是否已经开始

php

我有一个PHP文件,有时从启动会话的页面调用该文件,有时从没有会话启动的页面调用该文件。因此,当我使用session_start()此脚本时,有时会收到“会话已开始”的错误消息。为此,我放置了以下几行:

if(!isset($_COOKIE["PHPSESSID"]))
{
  session_start();
}

但是这次我收到了以下警告消息:

注意:未定义的变量:_SESSION

有没有更好的方法来检查会话是否已经开始?

如果我使用@session_start它,它将使一切正常运行,只是关闭警告?


阅读 255

收藏
2020-05-26

共1个答案

一尘不染

PHP > = 5.4.0和PHP 7*版本的推荐方法 *

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

对于 PHP <5.4.0*版本 *

if(session_id() == '') {
    session_start();
}
2020-05-26