Webbserverprogrammering 1

Show sourcecode

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

webbsrvprg/style/webbsrvprg/exercises/

cookies.php
feedback.php
formular.php
grunder1.php
grunder2.php
index.php
mottagare.php

formular.php

278 lines UTF-8 Windows (CRLF)

<?php
session_start
();

$losenord = "shurdaflippad";
$emailMottagare = ""; 
$fragor = [
    
1 => [
        
"fraga" => "Vilket är Stockholms bästa lag?",
        
"alternativ" => [
            
"a" => "AIK",
            
"b" => "DIF",
            
"c" => "HIF",
            
"d" => "BP"
        
],
        
"ratt" => "a"
    
],
    
2 => [
        
"fraga" => "Vem är bäst?",
        
"alternativ" => [
            
"a" => "Jag",
            
"b" => "Jamie",
            
"c" => "Anis Don Demina",
            
"d" => "Mathias"
        
],
        
"ratt" => "b"
    
],
    
3 => [
        
"fraga" => "Får vi tillräckligt med pengar på matkortet?",
        
"alternativ" => [
            
"a" => "Nej",
            
"b" => "JA",
            
"c" => "Kanske",
            
"d" => "Vet inte"
        
],
        
"ratt" => "a"
    
]
];



if (isset(
$_POST["losenord"])) {
    if (
$_POST["losenord"] === $losenord) {
        
$_SESSION["inloggad"] = true;
    } else {
        
$felLosenord = true;
    }
}

$steg = isset($_POST["steg"]) ? (int)$_POST["steg"] : 1;


if (!isset(
$_SESSION["inloggad"]) || $_SESSION["inloggad"] !== true) {
?>
<!DOCTYPE html>
<html lang="sv">
<head>
    <meta charset="UTF-8">
    <title>Formulär - Logga in</title>
</head>
<body>
    <h1>Formulär</h1>
    <p>Ange losenordet for att börja!</p>

    <?php if (isset($felLosenord)) { ?>
        <p>Fel lösenord! Försök igen.</p>
    <?php } ?>

    <form method="post">
        <label>Lösenord:
            <input type="password" name="losenord" required>
        </label>
        <button type="submit">Logga in</button>
    </form>
</body>
</html>
<?php
    
exit;
}
?>

<!DOCTYPE html>
<html lang="sv">
<head>
    <meta charset="UTF-8">
    <title>Min frågetävling</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 650px;
            margin: 40px auto;
            padding: 20px;
        }

        .ratt {
            background-color: #c8f7c5ff;
            padding: 5px;
        }

        .fel {
            background-color: #ffcaca;
            padding: 5px;
        }

        .alternativ {
            display: block;
            margin: 10px 0;
        }
    </style>
</head>
<body>

<?php

if ($steg === 1) {
?>

    <h1>Välkommen till frågetävlingen!</h1>

    <form method="post">
        <input type="hidden" name="steg" value="2">

        <label>Ditt namn:
            <input type="text" name="namn" required>
        </label>

        <h2>Fråga 1</h2>
        <p><?php echo $fragor[1]["fraga"]; ?></p>

        <?php foreach ($fragor[1]["alternativ"] as $bokstav => $text) { ?>
            <label class="alternativ">
                <input type="radio" name="svar1"
                       value="<?php echo $bokstav; ?>" required>
                <?php echo htmlspecialchars($text); ?>
            </label>
        <?php } ?>

        <button type="submit">Nästa fråga</button>
    </form>

<?php
}

// STEG 2: Andra fragan
else if ($steg === 2) {
    
$namn = $_POST["namn"] ?? "";
    
$svar1 = $_POST["svar1"] ?? "";
?>

    <h1>Fraga 2 av 3</h1>

    <form method="post">
        <input type="hidden" name="steg" value="3">
        <input type="hidden" name="namn"
               value="<?php echo htmlspecialchars($namn, ENT_QUOTES, 'UTF-8'); ?>">
        <input type="hidden" name="svar1"
               value="<?php echo htmlspecialchars($svar1, ENT_QUOTES, 'UTF-8'); ?>">

        <p><?php echo $fragor[2]["fraga"]; ?></p>

        <?php foreach ($fragor[2]["alternativ"] as $bokstav => $text) { ?>
            <label class="alternativ">
                <input type="radio" name="svar2"
                       value="<?php echo $bokstav; ?>" required>
                <?php echo htmlspecialchars($text); ?>
            </label>
        <?php } ?>

        <button type="submit">Nästa fråga</button>
    </form>

<?php
}

// STEG 3: Tredje fragan
else if ($steg === 3) {
    
$namn = $_POST["namn"] ?? "";
    
$svar1 = $_POST["svar1"] ?? "";
    
$svar2 = $_POST["svar2"] ?? "";
?>

    <h1>Sista frågan!</h1>

    <form method="post">
        <input type="hidden" name="steg" value="4">
        <input type="hidden" name="namn"
               value="<?php echo htmlspecialchars($namn, ENT_QUOTES, 'UTF-8'); ?>">
        <input type="hidden" name="svar1"
               value="<?php echo htmlspecialchars($svar1, ENT_QUOTES, 'UTF-8'); ?>">
        <input type="hidden" name="svar2"
               value="<?php echo htmlspecialchars($svar2, ENT_QUOTES, 'UTF-8'); ?>">

        <p><?php echo $fragor[3]["fraga"]; ?></p>

        <?php foreach ($fragor[3]["alternativ"] as $bokstav => $text) { ?>
            <label class="alternativ">
                <input type="radio" name="svar3"
                       value="<?php echo $bokstav; ?>" required>
                <?php echo htmlspecialchars($text); ?>
            </label>
        <?php } ?>

        <button type="submit">Skicka in svar</button>
    </form>

<?php
}

// STEG 4: Resultat och rattning
else if ($steg === 4) {
    
$namn = $_POST["namn"] ?? "";
    
$svar = [
        
1 => $_POST["svar1"] ?? "",
        
2 => $_POST["svar2"] ?? "",
        
3 => $_POST["svar3"] ?? ""
    
];

    
$poang = 0;

    
// Rakna antal ratta svar
    
for ($i = 1; $i <= 3; $i++) {
        if (
$svar[$i] === $fragor[$i]["ratt"]) {
            
$poang++;
        }
    }

    echo 
"<h1>Resultat</h1>";
    echo 
"<p>Bra jobbat, " .
         
htmlspecialchars($namn, ENT_QUOTES, 'UTF-8') . "!</p>";
    echo 
"<h2>Du fick " . $poang . " av 3 ratt.</h2>";

    
// Visa alla fragor och markera svaren
    
for ($i = 1; $i <= 3; $i++) {
        echo 
"<h3>Fraga $i: " .
             
htmlspecialchars($fragor[$i]["fraga"]) . "</h3>";

        foreach (
$fragor[$i]["alternativ"] as $bokstav => $text) {
            
$klass = "";

            if (
$bokstav === $fragor[$i]["ratt"]) {
                
$klass = "ratt";
            } else if (
$bokstav === $svar[$i]) {
                
$klass = "fel";
            }

            echo 
'<div class="alternativ ' . $klass . '">';

            if (
$bokstav === $fragor[$i]["ratt"]) {
                echo 
"✓ ";
            } else if (
$bokstav === $svar[$i]) {
                echo 
"✗ ";
            }

            echo 
htmlspecialchars($text) . "</div>";
        }
    }

   
    if (
$emailMottagare !== "") {
        
$amne = "Resultat fran fragetävlingen";
        
$meddelande = "Spelare: " . $namn .
                      
"\nPoang: " . $poang . " av 3";

        
$rubriker = "Content-Type: text/plain; charset=UTF-8";

        if (
mail($emailMottagare, $amne, $meddelande, $rubriker)) {
            echo 
"<p>Resultatet har skickats via e-post.</p>";
        } else {
            echo 
"<p>Kunde inte skicka e-post just nu.</p>";
        }
    }

    echo 
'<p><a href="formular.php">Börja om</a></p>';
}
?>

</body> 
</html>