セッションを開始したページから呼び出されることもある 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();
}