PHP password_verify возвращает true, но не возвращает false - PullRequest
0 голосов
/ 25 июня 2018

Password_verify возвращает «1», когда ввод пароля соответствует хешированному паролю, но не возвращает никакого значения, если ввод пароля не совпадает.

$sql = "SELECT ID, Username, Password FROM UserLogin";
$result = $connect->query($sql);

for($x = 0; $x < $result->num_rows; $x++){
  //echo '<br>' . $x . '<br>' . mysqli_num_fields($result) . '<br>';

  $UsernameInput = $_POST['username'];
  $PasswordInput = $_POST['password'];

  //fetch row
  $row = $result->fetch_assoc();
  $Username = $row["Username"];
  $HashedPassword = $row["Password"];
  //password_verify(passwordtocheck,hashedpasswordtocheckagainst)
  $Password = password_verify($PasswordInput, $HashedPassword);
  echo $Username . ' ' . $HashedPassword . '<br>' . $Password . '<br>';
  if($UsernameInput == $Username && $PasswordInput == $Password){
    echo 'Login successful';
  }  
}

HTML:

<form method="post">
  Username: <input type='text' name='username'><br>
  <span><?php echo $usernameError ?></span><br>
  Password: <input type='password' name='password'><br>
  <span><?php echo $passwordError?></span><br>
  <input type="submit" name='submit' value="Submit">
</form>
...