Wysypane logowanie

Odpowiedz Nowy wątek
2019-11-05 14:28
0

Witam, mam dosyc spory problem z logowaniem. Tworze sobie mały projekt. Mam baze danych, rejestracje i index.php na którym jest logowanie. Logowanie jest przez formularz w index.php wysylany POSTem do login.php a nastepnie tam decyduje czy cofa do indexu z błędem czy rusza dalej do zalogowany.php. Po wprowadzeniu błędnych danych wyrzuca błędy, ale po wprowadzeniu poprawnych nie dzieje sie nic, dalej zostaje na indexie, nie zwraca błędów ani nie przenosi dalej.
Tyle czasu się z tym wczoraj męczyłem i nie doszedłem do niczego, dlatego zadaje to pytanie. Gdzie popełniam błąd? Baza to mysql. Hasło do konta wprowadzam na zasadzie przejścia do rejestracji i zhashowane hasło wklejam do tablicy uzytkownicy. Sprawdziłem wszystkie możliwości, nie wiem co jest nie tak. Wielkość liter przy bazie danych jest zachowana odpowiednio.
Jak wprowadzam odpowiedni nick to zwraca drugi błąd, a jak nie ma nicku w bazie to pierwszy - połączenie z bazą i $result->fetch_assoc() raczej jest okej, problem jest przy verify password - tak według mnie, ale jak go ugryźć nie mam pojęcia.

INDEX.PHP

<?php

    session_start();

    if ((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true))
    {
        header('Location: zalogowany.php');
        exit();
    }

?>
<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title>Formularz rejestracji</title>

    </head>
    <body>

        <div id=tytul>Logowanie i rejestracja<br/><br/></div>

        <a href="rejestracja.php">Rejestracja - załóż konto</a>
        <br/> <br/>

        <form action="login.php" method="POST">
            Login:<br/> <input type="text" name="login"/> <br/>
            Hasło:<br/> <input type="password" name="haslo"/> <br/> <br/>
            <input type="submit" value="Zaloguj"/>

        </form>

<?php
if(isset($_SESSION['blad']))    echo $_SESSION['blad'];
?>

    </body>
</html>

LOGIN.PHP

<?php

    session_start();

    if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
    {
        header('Location: index.php');
        exit();
    }

require_once "database.php";

$conn = new mysqli($host, $user, $password, $db_name);

if ($conn->connect_errno!=0)
{
echo "Error: ".$conn->connect_errno;
}

else
{
$login = $_POST['login'];
$haslo = $_POST['haslo'];

$login = htmlentities($login, ENT_QUOTES, "UTF-8");

if ($result = $conn->query(
    sprintf("SELECT * FROM uzytkownicy WHERE NICK='%s'",
    mysqli_real_escape_string($conn, $login))))
{
    $ilu_userow = $result->num_rows;
    if ($ilu_userow>0)
    {
        $wiersz = $result->fetch_assoc();
        if (password_verify($haslo, $wiersz['HASLO']))
        {                
            $_SESSION['zalogowany'] = true;

            unset($_SESSION['blad']);
            $result->close();
            header('Location: zalogowany.php');
        }
        else {      
        $_SESSION['blad'] = '<p>Nieprawidłowy login albo haslo</p>';
        header('Location: index.php');
    }    

        }
    else {      
        $_SESSION['blad'] = '<p>Nieprawidłowy login albo haslo, wariant 2</p>';
        header('Location: index.php');
    }
    }
$conn->close();
}
?>
edytowany 1x, ostatnio: 4michal, 2019-11-05 14:30

Pozostało 580 znaków

2019-11-07 07:56
0

A mialem dopisac wczoraj zebys wlaczyl raportowanie błędów

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0