Show sourcecode
The following files exists in this folder. Click to view.
Webbsrvprg/ovningar/php_formulär/
php_formulär_1.php
php_formulär_2.php
php_formulär_3.php
php_formulär_4.php
php_formulär_5.php
php_formulär_6.php
php_formulär_3.php
71 lines UTF-8 Windows (CRLF)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
<?php
// php_formulär_3.php - formulär och resultat på samma sida
$errors = [];
$fornamn = $efternamn = $klass = $matratt = '';
$matratter = ["Köttbullar", "Pasta", "Pizza", "Sushi", "Tacos", "Lax", "Sallad"];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Hämta och trimma indata
$fornamn = trim($_POST['fornamn'] ?? '');
$efternamn = trim($_POST['efternamn'] ?? '');
$klass = trim($_POST['klass'] ?? '');
$matratt = trim($_POST['matratt'] ?? '');
// Enkel servervalidering
if ($fornamn === '') $errors[] = 'Förnamn krävs.';
if ($efternamn === '') $errors[] = 'Efternamn krävs.';
if ($klass === '') $errors[] = 'Klass krävs.';
if ($matratt === '' || !in_array($matratt, $matratter, true)) $errors[] = 'Välj en giltig maträtt.';
}
?>
<!doctype html>
<html lang="sv">
<head>
<meta charset="utf-8">
<title>Formulär 3 - Självhantering</title>
</head>
<body>
<?php if ($_SERVER['REQUEST_METHOD'] === 'POST' && empty($errors)): ?>
<h2>Tack! Här är din inskickade information:</h2>
<ul>
<li>Förnamn: <?= htmlspecialchars($fornamn, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?></li>
<li>Efternamn: <?= htmlspecialchars($efternamn, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?></li>
<li>Klass: <?= htmlspecialchars($klass, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?></li>
<li>Maträtt: <?= htmlspecialchars($matratt, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?></li>
</ul>
<p><a href="<?= htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?>">Skicka ny</a></p>
<?php else: ?>
<?php if (!empty($errors)): ?>
<div style="color: red;">
<p>Det uppstod följande fel:</p>
<ul>
<?php foreach ($errors as $e): ?>
<li><?= htmlspecialchars($e, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<form method="POST" action="">
<label>Förnamn: <input type="text" name="fornamn" required value="<?= htmlspecialchars($fornamn, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?>"></label><br>
<label>Efternamn: <input type="text" name="efternamn" required value="<?= htmlspecialchars($efternamn, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?>"></label><br>
<label>Klass: <input type="text" name="klass" required value="<?= htmlspecialchars($klass, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?>"></label><br>
<label>Maträtt:
<select name="matratt" required>
<option value="">-- välj --</option>
<?php foreach ($matratter as $m): ?>
<option value="<?= htmlspecialchars($m, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?>" <?= $m === $matratt ? 'selected' : '' ?>>
<?= htmlspecialchars($m, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8') ?>
</option>
<?php endforeach; ?>
</select>
</label><br>
<input type="submit" value="Skicka">
</form>
<?php endif; ?>
</body>
</html>