2010-08-21 118 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如果会话已启用,且存在会话。