2011-08-01 74 views
7

我想检查当前是否设置了会话,如果是这样,请允许页面正常运行(不做任何事情),如果不创建会话。检查会话是否设置,如果不创建一个?

我看了一下另一个SO问题,在下面的代码被张贴:

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

请问最简单的方法来做到这一点是设置像$_SESSION['a']每个会话,然后运行if(empty($_SESSION['a']))到检查会话是否存在?

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

有可能是一个简单的方法,这是经常使用的,我似乎无法找到它。

任何帮助将不胜感激!

回答

22

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

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

非常感谢:)。 10分钟后,我会接受定时器消失。 – Fireworksable

+2

进一步改进 - 您不需要检查字符串是否为false - 使用'session_id()'返回作为测试本身;空字符串是“falsey”值,这意味着''''在'if'语句中将被计算为false。 – Nightfirecat

相关问题