因此,我有一個存儲ID,用戶名和密碼的數據庫。密碼是使用php的password_hash()功能存儲的。該部分工作正常,并且已成功將其與哈希一起存儲在數據庫中?,F在我要使用該password_verify()功能。我似乎無法正確地從數據庫中獲取字符串值,以將其與該函數一起使用。$db由于我已經在其中存儲了一些東西,因此數據庫()的設置正確。數據庫中的列僅是ID,用戶名和密碼。$ username和$ password是用戶登錄時填寫的內容。<?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 回答
炎炎設計
TA貢獻1808條經驗 獲得超4個贊
在這里獲取數據后,創建$hashedpass一個數組:
$hashedpass = $sql->fetch_array();
然后,您將$hashedpass['password']使用表中的列名與之進行比較:
password_verify($password, $hashedpass['password'])
此外
小鮑比(Little Bobby)說,您的腳本有遭受SQL注入攻擊的危險。。即使轉義字符串也不安全
白板的微信
TA貢獻1883條經驗 獲得超3個贊
$hashedpass = $sql->fetch_array();
為您提供一個具有所選列名的關聯數組。
您應該通過選擇正確的元素來獲取值-
$hashedpass['password']
- 2 回答
- 0 關注
- 229 瀏覽
添加回答
舉報
0/150
提交
取消
