已启动的 PHP 会话

2022-08-30 07:48:06

在我的PHP代码中,如果会话已经启动,并且我尝试启动一个新会话,我会收到以下通知:

注意:会话已启动 - 忽略 session_start()

我该如何避免这种情况?


答案 1

尝试

<?php
    if(!isset($_SESSION)) 
    { 
        session_start(); 
    } 
?>

答案 2

如果你想要一个新的,那么在开始之前做。要在启动之前检查其设置,请调用 session_status()session_destroy()

$status = session_status();
if($status == PHP_SESSION_NONE){
    //There is no active session
    session_start();
}else
if($status == PHP_SESSION_DISABLED){
    //Sessions are not available
}else
if($status == PHP_SESSION_ACTIVE){
    //Destroy current and start new one
    session_destroy();
    session_start();
}

我会避免检查全局而不是调用该方法,因为PHP显式地实现了此函数:$_SESSIONsession_status()

通过新函数公开会话状态,session_status这是为了 (PHP >=5.4.0)


推荐