78 lines
2.9 KiB
PHP
78 lines
2.9 KiB
PHP
<!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>
|