Webbserverprogrammering 1

Show sourcecode

The following files exists in this folder. Click to view.

Webbsrvprg/exercises/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)
<?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$matrattertrue)) $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($fornamnENT_QUOTES ENT_SUBSTITUTE'UTF-8'?></li>
            <li>Efternamn: <?= htmlspecialchars($efternamnENT_QUOTES ENT_SUBSTITUTE'UTF-8'?></li>
            <li>Klass: <?= htmlspecialchars($klassENT_QUOTES ENT_SUBSTITUTE'UTF-8'?></li>
            <li>Maträtt: <?= htmlspecialchars($matrattENT_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($eENT_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($fornamnENT_QUOTES ENT_SUBSTITUTE'UTF-8'?>"></label><br>
            <label>Efternamn: <input type="text" name="efternamn" required value="<?= htmlspecialchars($efternamnENT_QUOTES ENT_SUBSTITUTE'UTF-8'?>"></label><br>
            <label>Klass: <input type="text" name="klass" required value="<?= htmlspecialchars($klassENT_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($mENT_QUOTES ENT_SUBSTITUTE'UTF-8'?><?= $m === $matratt 'selected' '' ?>>
                            <?= htmlspecialchars($mENT_QUOTES ENT_SUBSTITUTE'UTF-8'?>
                        </option>
                    <?php endforeach; ?>
                </select>
            </label><br>

            <input type="submit" value="Skicka">
        </form>
    <?php endif; ?>
</body>
</html>