16.11
This commit is contained in:
67
Zadania/Z111 - ramka ze znaków/index.php
Normal file
67
Zadania/Z111 - ramka ze znaków/index.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<!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>Z111 - Ramka ze znaków</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>Zadanie Z111</h1>
|
||||
<h2>Autor: Jakub Grzegorczyk</h2>
|
||||
</header>
|
||||
<div class="box">
|
||||
<p>Napisz program, który rysuje ramkę według podanego schematu, gdzie a oznacza szerokość, a b wysokość ramki. Ramka powinna składać się wyłącznie z znaków pionowych (|) dla wszystkich krawędzi, z wypełnieniem spacjami wewnątrz. Użytkownik podaje a i b w formularzu, a program weryfikuje, czy wartości są liczbami całkowitymi dodatnimi. Dla przypadku a=1 i b=1 ramka powinna być pojedynczym znakiem |.</p>
|
||||
<h3>Wskazówki dla ucznia:</h3>
|
||||
<ul>
|
||||
<li>Sprawdź, czy a i b są liczbami całkowitymi za pomocą is_numeric() i weryfikacji, czy po konwersji na int nie tracą wartości.</li>
|
||||
<li>Zweryfikuj, czy a i b są dodatnie (większe od 0).</li>
|
||||
<li>Użyj pętli do generowania wierszy ramki: dla a=1 i b=1 zwróć pojedynczy |, w przeciwnym razie górny i dolny wiersz z |, a środkowe z | i spacjami.</li>
|
||||
<li>Wyświetl wynik w elemencie <pre>, aby zachować formatowanie tekstu.</li>
|
||||
<li>Zabezpiecz dane wejściowe za pomocą htmlspecialchars() przy pobieraniu, aby chronić przed XSS.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="box">
|
||||
<form action="index.php" method="post">
|
||||
<fieldset>
|
||||
<legend>Wymiary ramki:</legend>
|
||||
<label for="a">Szerokość (a):</label>
|
||||
<input type="number" name="a" id="a" required>
|
||||
<label for="b">Wysokość (b):</label>
|
||||
<input type="number" name="b" id="b" required>
|
||||
</fieldset>
|
||||
<button type="submit">Wyślij</button>
|
||||
</form>
|
||||
</div>
|
||||
<?php
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
$a = htmlspecialchars($_POST['a']);
|
||||
$b = htmlspecialchars($_POST['b']);
|
||||
echo '<div class="box">';
|
||||
echo "<p>Szerokość (a): $a <br>Wysokość (b): $b <br>Rezultat: </p>";
|
||||
echo '<pre>';
|
||||
if ($a > 0 && $b > 0) {
|
||||
if ($a == 1 && $b == 1) {
|
||||
echo '|';
|
||||
} elseif ($b == 1) {
|
||||
echo str_repeat('|', $a);
|
||||
} elseif ($a == 1) {
|
||||
for ($i = 0; $i < $b; $i++) {
|
||||
echo "|\n";
|
||||
}
|
||||
} else {
|
||||
echo str_repeat('|', $a) . "\n";
|
||||
for ($i = 0; $i < $b - 2; $i++) {
|
||||
echo '|' . str_repeat(' ', $a - 2) . "|\n";
|
||||
}
|
||||
echo str_repeat('|', $a);
|
||||
}
|
||||
}
|
||||
echo '</pre>';
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user