我對安全性不是很熟悉,所以我依靠我在互聯網上找到的東西。我找到了一個解釋他所做事情的人以及他的方法如何工作的網站。人們可以複製粘貼它來緩解事情。 雖然我明白了很多,我不能拿出它自己(我很新的PHP/XHTML等)PHP PDO登錄腳本不起作用。包含錯誤
網站:How to store safely with PHP and MySQL
他使用PDO在他的教程。我能夠將信息存儲在數據庫中。但是當我嘗試使用他提供的代碼實際登錄的腳本時,雖然它看起來包含錯誤。
我已經做好了一切,一切正常,但哈希密碼與插入的密碼(散列等)的比較無法正常工作。
這到底是怎麼回事?
在此先感謝!
編輯
人們一直在問的代碼,所以,在這裏它是:
session_start();
require('config.php');
// Setting up a connection
$MyConnection = new PDO('mysql:host=*;dbname=*', $dbuser, $pass);
// Retrieving information from form.
$username = $_POST['username'];
$password = $_POST['password'];
$sth = $MyConnection->prepare("SELECT * FROM AMP_Users WHERE Username = :username LIMIT 1");
$sth->bindParam(':username', $username);
$sth->execute();
$user = $sth->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 now logged in. If we actually used sessions this time.';
}
我會加$ _SESSION [ '名'] = $用戶名,一旦代碼開始上班。直到現在,我只是迴應,如果它成功或沒有。它沒有顯示任何內容,所以它不起作用。
第二個編輯
就像一個快速更新,由我提供的腳本,是整個腳本。沒有什麼是泄漏的。 (除了數據庫的名稱等) 因此我想知道這個問題是否可能是因爲我沒有使用將密碼保存到數據庫中的散列腳本。雖然我已經投入了,但它仍然沒有迴應。我仍然做錯了什麼?
向我們展示您的代碼,我們可以修復它您。 – Aristona
哪裏是代碼? –
這是在網站鏈接上提供的代碼..它是完全一樣的。而不是SELECT哈希我使用SELECT * 但是好的,我會提供代碼。 –