• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed PHP logowanie z szyfrowaniem hasła

0 głosów
494 wizyt
pytanie zadane 24 listopada 2021 w PHP przez BarSki13 Obywatel (1,270 p.)
zamknięte 24 listopada 2021 przez BarSki13

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.

komentarz zamknięcia: Znalazłem rozwiązanie mojego problemu

Podobne pytania

0 głosów
2 odpowiedzi 1,694 wizyt
0 głosów
1 odpowiedź 722 wizyt
pytanie zadane 18 sierpnia 2019 w PHP przez Maciek Nayko Wiśniew Początkujący (350 p.)
0 głosów
3 odpowiedzi 1,549 wizyt
pytanie zadane 6 czerwca 2019 w PHP przez DODO Bywalec (2,950 p.)

93,720 zapytań

142,641 odpowiedzi

323,265 komentarzy

63,269 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...