2014-07-17 38 views
0

我無法在我的類方法內調用該變量。變量userId不會顯示在屏幕上。以下是我的課程和我的index.php文件。我想在表單提交後顯示用戶的userId。我無法調用我的PHP函數/方法

class validateLogin 
{ 
    public $id; 
    public $username; 
    public $password; 

    public function __construct($aUserName,$aUserPassword) 
    {  
     $this->username = $aUserName; 
     $this->password = $aUserPassword; 
    } 

    public function checkUser() 
    { 
     $conn = new dbconnection(); 
     $dbh = $conn->connect(); 

     $query = $dbh->prepare("SELECT id FROM tbluser WHERE username=:username AND password=:password"); 
     $query->bindParam(":username", $this->username); 
     $query->bindParam(":password", $this->password); 

     $query->execute(); 

     $counts = $query->rowCount();  

     if($counts==1) {   
      $results = $query->fetch(); 
      $this->id = $results['id']; 
     } 
    } 
    public function getUserId() { 
     return $this->id; 
    }  

} 

我的index.php低於(假設提交按鈕被點擊)

require_once 'classes/class.Database.php'; 
require_once 'classes/class.Validation.php'; 

if(isset($_POST['submit'])) { 
    if(!empty($_POST['username']) && !empty($_POST['password'])) {    
     $user = new validateLogin($_POST['username'],$_POST['password']);   
     echo getUserId() 
    } 
} 

回答

5

構造函數不調用的:

checkUser(); 

你需要讓構造做,或者:

require_once 'classes/class.Database.php'; 
require_once 'classes/class.Validation.php'; 

if(isset($_POST['submit'])) { 
    if(!empty($_POST['username']) && !empty($_POST['password'])) {    
     $user = new validateLogin($_POST['username'],$_POST['password']); 
     $user->checkUser(); 
     echo $user->getUserId(); 
    } 
} 
1

您需要引用對象

echo getUserId() 

應該

echo $user->getUserId() 
+0

是的,已經嘗試過,但仍沒有運氣。 – user3835444

+1

然後'id'沒有被設置,函數被調用罰款。另一個答案告訴你如何獲得'id'集合。 – dave