<!doctype html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>T59b</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
<header>
    <h1>Zadanie T59b</h1>
    <h2>Autor: Jakub Grzegorczyk</h2>
</header>
<div class="box">
    <p>PHP Przesyłanie danych użytkownika <br><br>

        (Podstawowa wersja rozwiązania) <br>
        Utwórz skrypt, który dane użytkownika przesyłane za pomocą formularza będzie przekazywał do utworzonego pliku cookie. Formularz powinien zawierać imię i nazwisko użytkownika.
        <br><br>

        (Wersja rozszerzona)<br>

        Dodatkowo przekazana jest również data urodzin użytkownika. Skrypt powinien wyświetlać informację, za ile dni użytkownik będzie obchodził urodziny.</p>
</div>
<div class="box">
    <form action="index.php" method="post">
        <label for="imie">Imie: </label><br>
        <input type="text" name="imie" id="imie"><br>
        <label for="nazwisko">Nazwisko: </label><br>
        <input type="text" name="nazwisko" id="nazwisko"><br>
        <label for="data">Data urodzin: </label><br>
        <input type="date" name="data" id="data"><br>
        <button type="submit">Wyślij</button>
    </form>
</div>
<div class="box">
    <?php
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            setcookie('imie', $_POST['imie'], time() + 3600);
            setcookie('nazwisko', $_POST['nazwisko'], time() + 3600);
            setcookie('data', $_POST['data'], time() + 3600);
        }
        if (isset($_COOKIE['imie']) && isset($_COOKIE['nazwisko']) && isset($_COOKIE['data'])) {
            function daysUntilNextBirthday(string $birthDate): ?int
            {
                $parts = explode('-', $birthDate);
                if (count($parts) !== 3) {
                    return null;
                }
                $now = time();
                $currentYear = (int)date('Y');

                $parts[0] = (string)$currentYear;
                $candidate = implode('-', $parts);
                $target = strtotime($candidate);
                if ($target === false) {
                    return null;
                }
                if ($target < $now) {
                    $parts[0] = (string)($currentYear + 1);
                    $candidate = implode('-', $parts);
                    $target = strtotime($candidate);
                    if ($target === false) {
                        return null;
                    }
                }
                return (int)ceil(($target - $now) / 86400);
            }
            echo "Witaj " . $_COOKIE['imie'] . " " . $_COOKIE['nazwisko'];
            echo "<br>";
            echo "Twoje urodziny będą za " . (daysUntilNextBirthday($_COOKIE['data'])) . " dni.";
        }
    ?>
</div>
</body>
</html>