Files
2025-10-23 08:43:51 +02:00

82 lines
3.5 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
$text = '';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$dzien1 = htmlspecialchars($_POST['dzien1']);
$miesiac1 = htmlspecialchars($_POST['miesiac1']);
$rok1 = htmlspecialchars($_POST['rok1']);
$dzien2 = htmlspecialchars($_POST['dzien2']);
$miesiac2 = htmlspecialchars($_POST['miesiac2']);
$rok2 = htmlspecialchars($_POST['rok2']);
$data1 = mktime(0, 0, 0, $miesiac1, $dzien1, $rok1);
$data2 = mktime(0, 0, 0, $miesiac2, $dzien2, $rok2);
$textData1 = date('d-m-Y', $data1);
$textData2 = date('d-m-Y', $data2);
if (!(checkdate($miesiac1, $dzien1, $rok1) && checkdate($miesiac2, $dzien2, $rok2))) {
$text = 'Jedna lub obie daty są niepoprawne';
} else {
if ($data1 < $data2) {
$text = "Pierwsza data ($textData1) jest wcześniejsza od drugiej ($textData2)";
} else if ($data1 > $data2) {
$text = "Druga data ($textData2) jest wcześniejsza od pierwszej ($textData1)";
}
}
}
?>
<!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>Z66 - porównanie daty</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>Zadanie Z66</h1>
<h2>Autor: Jakub Grzegorczyk</h2>
</header>
<div class="box">
<p>
Napisz program, który dla dat o postaci dzien1, miesiac1, rok1 oraz dzien2, miesiac2, rok2 określi, która z nich jest wcześniejsza. Program powinien przyjmować dane z formularza, weryfikować ich poprawność (np. czy dzień i miesiąc tworzą istniejącą datę) i wyświetlać obie daty oraz wynik porównania w czytelny sposób.
<br><br>
<b>Wskazówki dla ucznia:</b>
</p>
<ul>
<li>Użyj funkcji checkdate(), aby zweryfikować, czy data jest poprawna (np. czy 31-02-2023 istnieje).</li>
<li>Porównaj daty, zaczynając od roku, potem miesiąca, a na końcu dnia możesz to zrobić za pomocą prostych porównań (<, >, ==).</li>
<li>Alternatywnie, przekształć daty na znaczniki czasu za pomocą mktime() i porównaj je directly.</li>
<li>Zabezpiecz dane wejściowe za pomocą htmlspecialchars(), aby uniknąć problemów z XSS.</li>
<li>Wyświetl obie daty w formacie czytelnym, np. dzien-miesiac-rok, i poinformuj o błędach, jeśli dane są niepoprawne.</li>
</ul>
</div>
<div class="box">
<form action="index.php" method="post">
<fieldset>
<legend>Pierwsza data:</legend>
<label for="dzien1">Dzień: </label><br>
<input id="dzien1" name="dzien1" type="text"><br>
<label for="miesiac1">Miesiąc: </label><br>
<input id="miesiac1" name="miesiac1" type="text"><br>
<label for="rok1">Rok:</label><br>
<input id="rok1" name="rok1" type="text"><br>
</fieldset>
<br>
<fieldset>
<legend>Druga data:</legend>
<label for="dzien2">Dzień: </label><br>
<input id="dzien2" name="dzien2" type="text"><br>
<label for="miesiac2">Miesiąc: </label><br>
<input id="miesiac2" name="miesiac2" type="text"><br>
<label for="rok2">Rok:</label><br>
<input id="rok2" name="rok2" type="text"><br>
</fieldset>
<button type="submit">Wyślij</button>
</form>
</div>
<?php if ($text != '') { echo '<div class="box">' . $text . '</div>'; }?>
</body>
</html>