oazaSrdceWeb / login.php
login.php
Raw
<?php

/**
 * @file login.php
 * @brief Přihlašovací formulář pro administrátory a jeho zpracování.
 *
 * Tento skript:
 *  - Zpracovává POST požadavek z přihlašovacího formuláře (uživatelské jméno a heslo).
 *  - Provádí ochranu proti SQL injekcím pomocí stripslashes a real_escape_string.
 *  - Vyhledává uživatele v databázové tabulce 'user' na základě zadaného uživatelského jména a hesla.
 *  - Při úspěšném přihlášení nastavuje session proměnné (loggedin, id, username) a přesměrovává na admin.php.
 *  - Při neúspěšném přihlášení zobrazuje chybovou zprávu "Invalid username or password".
 */
include 'db_connection.php';
session_start();

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Zkontroluje, zda jsou odeslány uživatelské jméno a heslo
    if (isset($_POST['username'], $_POST['password'])) {
        $username = $_POST['username'];
        $password = $_POST['password'];

        // Ochrana proti SQL injekcím
        $username = stripslashes($username);
        $password = stripslashes($password);
        $username = $conn->real_escape_string($username);
        $password = $conn->real_escape_string($password);

        $sql = "SELECT id, username FROM user WHERE username='$username' and password='$password'";
        $result = $conn->query($sql);

        if ($result->num_rows == 1) {
            $row = $result->fetch_assoc();
            $_SESSION['loggedin'] = true;
            $_SESSION['id'] = $row['id'];
            $_SESSION['username'] = $row['username'];
            header("location:admin.php");
            exit;
        } else {
            $error = "Invalid username or password";
        }
    }
}
?>
<!DOCTYPE html>
<html lang="cs">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Přihlášení</title>
    <link
        href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
        rel="stylesheet" />
    <link rel="stylesheet" href="css/login.css" />
    <link rel="icon" href="media/logo-oaza2.png" type="image/x-icon" />

</head>

<body>
    <div class="container">
        <div class="row">
            <div class="col-12">
                <img src="media/logo-oaza2.png" alt="">
                <form action="login.php" method="post">
                    <?php if (isset($error)) {
                        echo '<div class="alert alert-danger">' . $error . '</div>';
                    } ?>
                    <div class="row">
                        <div class="col-12 formParts"><label for="username"><b>Uživatelské jméno</b></label></div>
                        <div class="col-12 formParts">
                            <input type="text" placeholder="Zadejte uživatelské jméno" id="username" name="username" required>
                        </div>
                        <div class="col-12 formParts"><label for="password"><b>Heslo</b></label></div>
                        <div class="col-12 formParts">
                            <input type="password" placeholder="Zadejte heslo" id="password" name="password" required>
                        </div>
                        <div class="col-12 formParts text-right "><button type="submit">Přihlásit</button></div>
                    </div>
                </form>
            </div>
        </div>
    </div>
</body>

</html>