2011-03-12 148 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();