2011-08-01 78 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

相關問題