2011-03-12 123 views
-2

我希望能够到$ _SESSION变量从我的类存储,但它似乎并不奏效。我搜索了stackoverflow并搜索了相当长的一段时间,但无法找到足够的信息来知道这是否可行。

我可以将我班$ _SESSION变量?我似乎无法在课堂之外访问它。

class myClass { 

    public function authorizeLogin($email,$password) { 

     global $_SESSION; 

     //Query to authorize user 
     $q_auth = $this->query(" 
      SELECT first_name,last_name,email,date_registered,access_id 
      FROM users 
      WHERE email = '$email' AND password = '$password'"); 

     $authorized = $q_auth ? 1 : 0 ; 

     if($q_auth) { 
      //Loop through values and assign in session 
      foreach($q_auth as $key => $value) { 
       $_SESSION[$key] = $value; 
      } 
     } 

     return $authorized; 
    } 

} 
+1

你叫你在session_start authorizeLogin – Alex 2011-03-12 09:17:53

+0

之前我运行在session_start之前,我包括在这个命令宣布我的课: 在session_start(); 包含'myClass.class.php'; $ myClass的新= MyClass的(); – bryce 2011-03-12 09:23:37

+1

你怎么知道''它似乎没有工作'?我看不到代码中的调试输出。 – 2011-03-12 09:26:58

回答

2

$_SESSION是超全局变量 - 无需使用global

您的代码看起来不错 - 但你跑session_start();

+0

我在申报我的课之前,在我的config.php中运行它。 – bryce 2011-03-12 09:20:19

1

我也可能错了,但我相信,你必须包含这个类启动会话之前。然后创建你的对象。由于某种奇怪的原因,我无法解释我记得在某个地方听到这个。

所以顺序应该包括( “myClass.class.php”);在session_start(); $ myClass = new myClass();