-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'이므로 로그인하면 안됩니다.
귀하의 조언이 근무하고 지금 내 로그인 스크립트가 마법처럼 작동합니다
은 또한 단지 쿼리의 상태를 확인할 수 있습니다. 고맙습니다. –