Webbserverprogrammering 1

Show sourcecode

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

webbsrvprg/exercises/formular/

Formular1.php
Formular1Svar.php
Formular2.php
Formular2Svar.php
Formular3.php
Formular3Svar.php
Formular4.php
Formular4Svar.php
Formular5.php
Formular5Svar.php
Formular6.php
Formular6Svar.php
Formular7.php
Formular7Svar.php
Formular8.php

Formular6Svar.php

56 lines UTF-8 Windows (CRLF)
<?php
function skyddaText($text) {
    return 
htmlspecialchars((string) $text, ENT_QUOTES, "UTF-8");
}

function 
skrivUtFavoritmatratter(array $matratter) {
    if (
count($matratter) > 1) {
        echo 
"<p>Dina favoritmaträtter är " . skyddaText(implode(", ", $matratter)) . ".</p>";
    } elseif (
count($matratter) === 1) {
        echo 
"<p>Din favoritmaträtt är " . skyddaText($matratter[0]) . ".</p>";
    }
}

function 
valjGiltigaMatratter($valdaMatratter) {
    
$tillgangligaMatratter = ["Tacos", "Pizza", "Pasta", "Sushi", "Hamburgare", "Sallad", "Pannkakor"];
    if (!
is_array($valdaMatratter)) {
        return [];
    }
    return 
array_values(array_intersect($valdaMatratter, $tillgangligaMatratter));
}

$svar = null;
if (
$_SERVER["REQUEST_METHOD"] === "POST") {
    
$fornamn = trim($_POST["fornamn"] ?? "");
    
$efternamn = trim($_POST["efternamn"] ?? "");
    
$klass = trim($_POST["klass"] ?? "");
    
$kurs = trim($_POST["kurs"] ?? "");

    if (
$fornamn !== "" && $efternamn !== "" && $klass !== "" && $kurs !== "") {
        
$svar = [
            
"fornamn" => $fornamn,
            
"efternamn" => $efternamn,
            
"klass" => $klass,
            
"kurs" => $kurs,
            
"matratter" => valjGiltigaMatratter($_POST["matratter"] ?? []),
        ];
    }
}
?>
<!DOCTYPE html>
<html lang="sv">
<head>
    <meta charset="UTF-8">
    <title>Dina svar</title>
</head>
<body>
    <?php if ($svar !== null): ?>
        <h1>Hej <?= skyddaText($svar["fornamn"]) ?> <?= skyddaText($svar["efternamn"]) ?> i <?= skyddaText($svar["klass"]) ?>!</h1>
        <?php skrivUtFavoritmatratter($svar["matratter"]); ?>
        <p>Din favoritkurs är <?= skyddaText($svar["kurs"]) ?>.</p>
    <?php else: ?>
        <p>Fyll i namn, klass och välj en kurs i formuläret.</p>
    <?php endif; ?>
</body>
</html>