因此,我有一個存儲ID,用戶名和密碼的數(shù)據(jù)庫。密碼是使用php的password_hash()功能存儲的。該部分工作正常,并且已成功將其與哈希一起存儲在數(shù)據(jù)庫中?,F(xiàn)在我要使用該password_verify()功能。我似乎無法正確地從數(shù)據(jù)庫中獲取字符串值,以將其與該函數(shù)一起使用。$db由于我已經(jīng)在其中存儲了一些東西,因此數(shù)據(jù)庫()的設(shè)置正確。數(shù)據(jù)庫中的列僅是ID,用戶名和密碼。$ username和$ password是用戶登錄時填寫的內(nèi)容。<?php if (count($errors) == 0) { // Everything correct, so verify pw $sql = $db->query("SELECT password FROM users WHERE username='$username'"); if ($sql->num_rows > 0 ){ $hashedpass = $sql->fetch_array(); if (password_verify($password, $hashedpass['password'])); { $msg = "Username and password are correct"; } else { $msg = "Incorrect"; } else { $msg = "Incorrect"; }?>
2 回答

炎炎設(shè)計
TA貢獻(xiàn)1808條經(jīng)驗 獲得超4個贊
在這里獲取數(shù)據(jù)后,創(chuàng)建$hashedpass
一個數(shù)組:
$hashedpass = $sql->fetch_array();
然后,您將$hashedpass['password']
使用表中的列名與之進(jìn)行比較:
password_verify($password, $hashedpass['password'])
此外
小鮑比(Little Bobby)說,您的腳本有遭受SQL注入攻擊的危險。。即使轉(zhuǎn)義字符串也不安全

白板的微信
TA貢獻(xiàn)1883條經(jīng)驗 獲得超3個贊
$hashedpass = $sql->fetch_array();
為您提供一個具有所選列名的關(guān)聯(lián)數(shù)組。
您應(yīng)該通過選擇正確的元素來獲取值-
$hashedpass['password']
- 2 回答
- 0 關(guān)注
- 209 瀏覽
添加回答
舉報
0/150
提交
取消