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

时间:2011-08-01 16:34:13

标签: php session

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

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

if ( empty( $_SESSION['login'] )) { } else { }

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

然后再次,你可以使用一个会话变量而不首先调用session_start(),从而使它过时(我昨天尝试过,作为一个回声,而不是一个if语句来检查变量是否正在执行而没有意识到在我可以回显变量之前需要调用session_start()。

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

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:23)

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

 if(session_id())
 {
      // session has been started
 }
 else
 {
      // session has NOT been started
      session_start();
 }