PHPセッションがすでに開始されているかどうかを確認する 質問する

PHPセッションがすでに開始されているかどうかを確認する 質問する

セッションを開始したページから呼び出されることもある PHP ファイルと、セッションを開始していないページから呼び出されることもある PHP ファイルがあります。そのため、session_start()このスクリプトを実行すると、「セッションはすでに開始されています」というエラー メッセージが表示されることがあります。そのために、次の行を追加しました。

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

しかし今回は次の警告メッセージが表示されました:

注意: 未定義の変数: _SESSION

セッションがすでに開始されているかどうかを確認するより良い方法はありますか?

使用すれば、@session_start正常に動作し、警告が消えるでしょうか?

ベストアンサー1

PHP >= 5.4.0、PHP 7、PHP 8のバージョンに推奨される方法

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

参照:http://www.php.net/manual/en/function.session-status.php

PHPのバージョンが5.4.0未満の場合

if(session_id() == '') {
    session_start();
}

おすすめ記事