simple session_start() request to avoid warning:
<?php
if (!$_SESSION) {session_start();}
// your code
?>
Or similar code works, but give a warning.
<?php
if(session_status() != 2) {session_start();}
// your code
?>
This option work fine without warning.
0 = PHP_SESSION_DISABLED
1 = PHP_SESSION_NONE
2 = PHP_SESSION_ACTIVE
session_status
(PHP >=5.4.0)
session_status — Détermine le statut de la session courante
Description
int session_status
( void
)
session_status() est utilisée pour connaitre l'état de la session courante.
Valeurs de retour
-
PHP_SESSION_DISABLEDsi les sessions sont désactivées. -
PHP_SESSION_NONEsi les sessions sont activées, mais qu'aucune n'existe. -
PHP_SESSION_ACTIVEsi les sessions sont activées, et qu'une existe.
Voir aussi
- session_start() - Démarre une nouvelle session ou reprend une session existante
ive_insomnia at live dot com ¶
2 months ago
php at pointpro dot nl ¶
1 month ago
The advice of ive_insomnia at live dot com should be taken with great care.
First of all, while his use case for session_status is valid, a simpler way to avoid the warning is:
<?php
if (!isset($_SESSION)) { session_start(); }
?>
The example of session_status uses the raw values of constants (2 in this case) created specifically for the purpose of not having to use magic numbers.
Better code would be:
<?php
if (session_status() !== PHP_SESSION_ACTIVE) {session_start();}
?>
The same can be done using
<?
if (session_id() === "") { session_start(); }
?>
The use of this function is lies more towards status management: change the behavior of a script when sessions are disabled altogether, for example.
