2016-06-21 41 views
0

請學習如何編寫簡單的PDO登錄系統。我的一個文件,即User.php在渲染後出現錯誤。學習簡單PDO登錄系統時,在我的User.php文件中出錯

這是我的代碼:

<?php 

include_once('connection.php'); 
class User{ 

private $db; 
public function _construct(){ 

$this->db = new Connection(); 
$this->db = $this->db->dbConnect(); 
} 
public function login($name,$pass){ 

if(!empty($name) && !empty($pass)){ 

    $stmt = $this->db->prepare(" SELECT * FROM users WHERE name = ? and pass = ? "); 
    $stmt -> bindParam(1,$name); 
    $stmt -> bindParam(2,$pass); 
    $stmt -> execute(); 

    if($stmt->rowCount()==1){ 
     echo "successfully login"; 
    }else{ 
     echo "incorrect username or password"; 
    } 
    } else{ 
     echo "enter correct username and password"; 
    } 

以下是錯誤:

Fatal error: Call to a member function prepare() on null in C:\xampp\htdocs\simplelogin\User.php on line 16

+0

可能的重複[致命錯誤調用成員函數prepare()null](http://stackoverflow.com/questions/30627027/fatal-error-call-toa-a-member-function-prepare-on -null) – hjpotter92

回答

0

這意味着$this->dbnull並沒有被初始化。

改變這一行: public function _construct(){

要:

public function __construct(){

你缺少在constructor下劃線。希望這可以幫助。

+0

謝謝@Osama.Please將想知道如何散列密碼 – Emmanuel

+0

@Emmanuel您可以使用password_hash()函數http://php.net/manual/en/function.password-hash.php哈希你的密碼'$ hashedPassword = password_hash(「rasmuslerdorf」,PASSWORD_DEFAULT);'你可以使用password_verify函數http://php.net/manual/en/function.password-verify.php來驗證密碼的哈希值。在這裏查看這個例子http://php.net/manual/en/function.password-verify.php#refsect1-function.password-verify-examples。希望這個幫助。 –

+0

男人,我的問題我不明白code.Aside,發現它很難如何將其插入我的代碼。 – Emmanuel