我正在使用我在網上找到的登錄腳本。 (http://alias.io/2010/01/store-passwords-safely-with-php-and-mysql/)在非對象上調用成員函數bindParam()
當我試圖使它的工作,我偶然發現了這個錯誤:
布爾(假) 致命錯誤:調用一個成員函數bindParam()在/ SRV一個非對象/disk3/1446018/www/askmephilosophy.co.nf/session.php在線25
我的代碼:
<?php
include('config.php');
// Establishing the connection:
$MyConnection = mysqli_connect('hostname', 'user', 'pass', 'database')
or die('An error has occured when you were trying to login. You can return to the main page
by clicking: <a href="index.php">here</a>. <br />
If this error is consistent, please <a href="contact.php">contact us</a>.');
// Information provide by the user:
$username = $_POST['username'];
$password = $_POST['password']; // Text version.
$StatementHandle = $MyConnection->prepare('
SELECT
hash
FROM Users
WHERE
username = :username
LIMIT 1
');
var_dump($StatementHandle);
$StatementHandle->bindParam(':username', $username);
$StatementHandle->execute();
$user = $StatementHandle->fetch(PDO::FETCH_OBJ);
// Hashing the password with its hash as the salt returns the same hash:
if(crypt($password, $user->hash) == $user->hash) {
echo 'You are logged in. Well, not actually. We only just confirmed that
our system works. This service\'ll cost you $1';
}
?>
你的mysqli連接不是一個對象,你已經使用了程序風格 –
那麼我怎樣才能使它成爲一個對象呢? 只需使用PDO方法連接到數據庫? –