所以我有一個註冊頁面和一個登錄頁面,註冊頁面工作得很好,但登錄頁面似乎無法工作,我似乎無法弄清楚。
我的數據庫似乎是工作,因爲我能夠呼應出哈希密碼在登錄的頁面,似乎有事情做與 password_verify()
註冊頁面(工作)
<?php
include("assets/includes/conn.php");
$user = $_POST['username'];
$pass = $_POST['pass'];
$cPass = $_POST['c-pass'];
$email = $_POST['email'];
$options = [
'cost' => 11
];
if($pass == $cPass){
$stmt = $conn->prepare("INSERT INTO users (username, pass, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $user, $h_p, $email);
$user = $_POST['username'];
$h_p = password_hash($pass, PASSWORD_DEFAULT, $options)."\n";
$email = $_POST['email'];
$stmt->execute();
echo "Created";
echo $h_p;
$stmt->close();
$conn->close();
}
登錄頁面(不工作)
<?php
include("assets/includes/conn.php");
$username = $_POST['username'];
$password = $_POST['pass'];
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = $conn->query($sql);
if ($result->num_rows == 1){
$row = $result->fetch_assoc();
$hash = $row['pass'];
if(password_verify($password, $hash)){
echo "Yes";
} else {
echo "No<br/>";
echo "" . $hash . "<br/>";
echo $password;
}
}
我有一些想法,爲什麼它失敗,但你可以看到下面的答案。 –
確保你[顯示錯誤](http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display),以防萬一你的變量沒有正確發送腳本等 – Mike
@Mike問題是我不認爲這是一個錯誤,它只是告訴我,密碼是不正確的,即使它是,這可能與它被哈希 –