-2
我的登錄系統目前工作正常。我可以把正確的用戶名和密碼,它會登錄,但不反之亦然。唯一不能正常工作的是狀態檢查。如果用戶的狀態爲'0',則不應登錄。所以我試圖打印出狀態並沒有顯示。然後,我對password_hash也做了同樣的處理,並得到了相同的結果(這很奇怪,因爲password_verify()沒有問題)。用戶輸入的密碼確實打印,所以這一定是一個mysqli_result的事情。任何幫助?我無法獲得msqli_result打印
include_once($_SERVER['DOCUMENT_ROOT'] . "/php_scripts/db_conx.php");
function CheckLogin($username, $password, $db_conx){
time_nanosleep(0, 100000000);
$userQuery = $db_conx->prepare("SELECT * FROM users WHERE username = ?");
$userQuery->bind_param('s', $username);
$userQuery->execute();
$userResult = $userQuery->get_result();
if($userResult->num_rows == 1){
$password_hash = $userResult->fetch_assoc()['password'];
$status = mysqli_fetch_assoc($userResult)['status']; // $status turns out null
echo($status); // Prints nothing
printf("%s\n", $userResult->fetch_assoc()['password']); // Prints nothing
print_r($userResult->fetch_assoc()); // Prints nothing
print($password); //Prints the password correctly
if(password_verify($password, $password_hash) && $status != '0'){
//password_verify() works like a charm
//Status check is the only thing that does not work
return true;
} else{
return false;
}
}
return false;
}
用戶狀態爲'0',因此它不應該登錄。
你的意見的工作,現在我的登錄腳本就像一個魅力。謝謝。 –