2017-06-10 50 views
0

我想用php和mysql驗證用戶名和密碼。如何在登錄php中獲取用戶值?

我用rowCount知道用戶是否存在,但如果存在(rowCount> 0)我想從用戶獲取值。

public static function validateUser($user) 
{ 
    $dto = NULL; 
    $exist = false; 

    $strUsername = $user->getUsername(); 
    $strPassword = $user->getPassword(); 

    try 
    { 
     $pdo = new PDOClass(); 
     $stmt = $pdo->prepare("select username, password, name, age, ocupation, id from user where username = ? AND password = ?"); 
     $stmt->bindParam(1, $strUsername); 
     $stmt->bindParam(2, $strPassword); 
     $stmt->execute(); 
     $resultado = $stmt->fetchAll(); 
     if($stmt->rowCount()>0) { 
      exist true; 
      //get user values 
      $user->setName(??); 
      $user->setAge(??); 
     } 

    } catch (Exception $ex) { 
     echo"Error SQL ".$ex->getMessage(); 
    } 

    return $exist; 
} 
+0

什麼是'PDOClass'?你在使用某種類型的框架嗎? – FrankerZ

+0

嗨,這是連接到MySQL的類,即時通訊不使用框架。 – Danilo

回答

0

取而代之的是:

$resultado = $stmt->fetchAll(); 
if($stmt->rowCount()>0) { 
    exist true; 
    //get user values 
    $user->setName(??); 
    $user->setAge(??); 
} 

你會做:

// Fetch only one row 
$resultado = $stmt->fetch(\PDO::FETCH_ASSOC); 
if($resultado !== false) { 
    // If the user exists you can get its name and age and perform any 
    // kind of validation you want 
    $user->setName($resultado['name']); 
    $user->setAge($resultado['age']); 
} 
+0

這個作品!謝謝 – Danilo

+0

沒問題。如果您對此感到滿意,請接受答案。 – GullDe

0

要想從用戶必須使用HTML形式的文本字段和密碼字段的值。一旦用戶按提交按鈕,使用PHP $ _REQUEST []或$ _GET []或$ _POST []全局變量從這些字段中檢索值。

<form method="" action=""> 
Username 
<input type="text" name="user"> 
PasSword 
<input type="password" name="pass"> 
<input type="submit"> 
</form> 

PHP代碼

$user=$_REQUEST["user"]; 
$pass=$_REQUEST["pass"]