检查是否设置了会话,如果没有创建会话?

Fir*_*ble 9 php session

我想检查当前是否设置了会话,如果是,则确保允许页面正常运行(不执行任何操作),如果不创建会话.

我看了另一个SO问题,其中发布了以下代码:

if ( empty( $_SESSION['login'] )) { } else { }
Run Code Online (Sandbox Code Playgroud)

最简单的方法是$_SESSION['a']为每个会话设置类似的东西,然后运行if(empty($_SESSION['a']))以检查会话是否存在?

话又说回来,你可以使用一个会话变量没有在第一时间调用在session_start(),从而使其过时的(我这个昨天试过,作为回声虽然,不是一个if语句来检查一个变量被携带通过没有意识到,在session_start在我可以回显变量之前需要调用().

可能有一种简单的方法,我似乎无法找到它.

任何帮助将不胜感激!

Chr*_*ner 24

session_id()返回标识当前会话的字符串.如果会话尚未初始化,则返回空字符串.

 if(session_id())
 {
      // session has been started
 }
 else
 {
      // session has NOT been started
      session_start();
 }
Run Code Online (Sandbox Code Playgroud)

  • 进一步的改进 - 你不需要检查字符串是否为假 - 使用`session_id()`的返回作为测试本身; 空字符串是"falsey"值,这意味着`''`将在`if`语句中评估为false. (3认同)