2017-08-11 75 views
0

即時嘗試爲我的網站做一個登錄系統,我能夠散列密碼並將散列數據插入數據庫,但是檢索它有點不同。Password_Verify不會返回值

我正在爲上一頁中的給定用戶名(以及上一頁中給定的密碼)在頁面中搜索(哈希密碼)。然後讓我的代碼看看這兩個密碼是否匹配,但是,我沒有得到價值回報。是的,我在迴應,並提出建議?

<?php 
session_start(); 

include 'dbh.php'; 

$Username = $_POST['Username']; 
$Password = $_POST['Password']; 

$sql = "SELECT * FROM account WHERE Username='$Username'"; 
$result = $conn->query($sql); 
while ($row = $result->fetch_assoc()) { 
    $UsernameActualhashedPassword = $row['Password']; 
} 

$input = $Password; 

echo $input; 
echo $UsernameActualhashedPassword; 
echo password_verify($input, $UsernameActualhashedPassword); 
+0

什麼是在$結果NUM_ROWS的價值? – flamelite

回答

0

試試這一個,尋找Sanitizing user for secure login

<?php 
session_start(); 

include 'dbh.php'; 

$Username = $_POST['Username']; 
$Password = $_POST['Password']; 
$hashpass = hash_fun($password); // use the same hash function which you have used in the signup 
$sql = "SELECT count(*) FROM account WHERE Username='$Username' and 
password='$hashpass'"; 
$result = $conn->query($sql); 
if($result>0) 
    echo "Login success"; 
else echo "wrong username or password"; 
?> 
+0

我看了一下,因爲當用戶註冊這個密碼時,我已經對密碼進行了散列處理。有任何其他想法? – JoshuaMicallef

+0

對不起,我忘了提及哈希函數,我已經修改了相同的,現在可以在你的情況下工作。 – flamelite