Witam,
W PHP zrobiłem logowanie jednak na samym początku zrobiłem w bazie danych na hasło ustawiłem normalnie nie zaszyfrowane i logowanie działa. Jednak gdy kod zmieniłem na szyfrowanie password_hash wyskakuje że są nieprawidłowe dane logowania a hasło w inpucie wpisuje takie samo tylko sprawdza w bazie czy hasło zaszyfrowane się zgadza.
Najpierw wyświetliłem w echo zaszyfrowane hasło, a następnie dodałem do bazy danych w rekordzie password0. Później dodałem do kodu, że dane co zapisuje w tablicy od pobranej wartości hasła z bazy danych ma się równać hasło wpisane w inpucie, jednak dane są niepoprawne. Czy wie może ktoś jak mogę kod zmienić czy coś innego by logowanie z szyfrowaniem hasła zadziałało ?
Z góry dziękuję za odpowiedź
Kod PHP logowanie
<body>
<div id="absoluteCenteredDiv">
<form method="post">
<div class="box">
<h1>Zaloguj</h1>
<input class="username" name="username" type="text" placeholder="Login">
<input class="username" name="username2" type="password" placeholder="Hasło">
<input type="submit" value="Zaloguj" class="button">
</div>
</form>
<?php
include('connect.php');
if(!empty($_POST['username']) && !empty($_POST['username2']))
{
$username = $_POST['username'];
$conn = mysqli_connect($server_name, $user_name, $pass, $db_name);
$sql = "SELECT login0, password0 FROM rejestracja WHERE login0 = '$username'";
$result = mysqli_query($conn, $sql) or die('Błędne zapytanie');
$row = mysqli_fetch_array($result);
$hasher = password_hash($_POST['username2'], PASSWORD_BCRYPT);
echo $hasher;
if($_POST['username'] == $row[0] && $hasher == $row[1])
{
echo "Zalogowano";
header('Location: http://localhost/adminpanel/start.html');
}
else
{
echo "Nieprawidłowe dane logowania";
}
}
?>
</div>
</body>
W pliku connect.php przechowuje dane logowania do bazy danych do łączenia się z nią. Localhost root brak hasła i nazwa bazy danych.