2010-08-21 120 views
29

Facebook現在向用戶提供訂閱,以便您可以實時更新更改。如果我的應用程序收到更新,我打算將其存儲在數據庫中。我也想檢測他們的會話是否存在。如果確實如此,那麼我也可以更新那裏的數據。檢測PHP會話是否存在

我的會話ID是MD5(fb_id + secret),所以我可以輕鬆地編輯他們的會話。問題是如何檢測會話是否存在。

+1

你的意思是誰的會話?來自哪裏?由誰創建? – 2010-08-21 18:55:32

+0

「祕密散列」是什麼意思?如果它是一個正確的哈希,你不能得到fb_id。 – NullUserException 2010-08-21 18:55:54

+0

用戶會話,從我的服務器,由我的服務器創建...對不起,我認爲這是一個給定 – Pablo 2010-08-21 18:56:21

回答

26

按照PHP.net manual

如果$_SESSION(或$HTTP_SESSION_VARS爲PHP 4.0.6或更小)時,使用isset()檢查一個變量在$_SESSION註冊。

+0

我想這將有助於其他誰絆倒這個答案:http://php.net/manual/en/function.isset.php – Jace 2012-10-15 14:42:40

41

我使用組合的版本:

if(session_id() == '' || !isset($_SESSION)) { 
    // session isn't started 
    session_start(); 
} 
7

如果你是在PHP 5.4+,它是清潔劑使用session_status()

if (session_status() == PHP_SESSION_ACTIVE) { 
    echo 'Session is active'; 
} 
  • PHP_SESSION_DISABLED如果會話將被禁用。
  • PHP_SESSION_NONE如果會話已啓用,但不存在。
  • PHP_SESSION_ACTIVE如果會話已啓用,且存在會話。