我正在學習如何使用準備好的語句,我想我會嘗試一個登錄系統(簡單)使用password_hash()
和password_verify(
)函數。我已經成功地插入了使用已準備好的statemernts的數據,現在我想驗證密碼並對用戶做些什麼。Php登錄password_verify
我似乎又回到我在這個階段失敗消息:
$stmt = $conn->prepare("SELECT username, password FROM users WHERE username = ?");
$stmt->bind_param('s', $username);
$username = $_POST['ulogin'];
$password = $_POST['upassword'];
$stmt->execute();
$stmt->bind_result($username, $password);
$row = $stmt->fetch();
if ($stmt->num_rows == 1) {
if (password_verify($password, $row['user_password'])) {
echo 'success';
}
} else {
echo "Wrong data";
}
$stmt->close();
$conn->close();
如果我做一個var_dump($stmt->fetch());
和登錄的用戶名是正確的是回來爲bool(true)
林不知道如何嘗試現在驗證密碼。
無法看到你的變量$ row – Akintunde007
@PhpDev哎呀對不起,你去 – PhpDude
$ row ['user_password'];給你散列?如果是這樣,你應該得到一個結果。如果密碼未驗證,請添加一個else語句。 – Akintunde007