Webbserverprogrammering 1

Show sourcecode

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

webbsrvprg/exercises/

fragotavling.php
index.php
ovn_cookie.php
ovn_cookie1.php
ovn_cookie2.php
ovn_cookie4.php
ovn_cookie5.php
ovn_cookie_hemligt.php
ovn_cookie_login.php
ovn_form.php
ovn_form2.php
ovn_form3.php
ovn_form4.php
ovn_form6.php
ovn_form7.php
ovn_form8.php
ovn_formular.php
ovn_formular_svar.php
ovn_formular_svar2.php
ovn_formular_svar3.php
ovn_formular_svar4.php
ovn_formular_svar6.php
ovn_formular_svar7.php
ovn_funktioner.php
ovn_gr1.php
ovn_inklfiler.php
ovn_inklfiler2_1.php
ovn_inklfiler2_2.php
ovn_inklfiler2_3.php
ovn_inklfiler_slut.php
ovn_inklfiler_start.php
ovn_inklfiler_test.php
ovn_strangar.php

ovn_cookie5.php

311 lines UTF-8 Windows (CRLF)
<?php
session_start
();

$losenord = "hemligt123";

$ratta_svar = [
    
1 => "B",
    
2 => "C",
    
3 => "A"
];

if (isset(
$_POST["losenord"])) {
    if (
$_POST["losenord"] == $losenord) {
        
$_SESSION["inloggad"] = true;
        
$_SESSION["steg"] = 0;
        
$_SESSION["namn"] = "";
        
$_SESSION["svar1"] = "";
        
$_SESSION["svar2"] = "";
        
$_SESSION["svar3"] = "";

        
header("Location: ovn_cookie5.php");
        exit();
    } else {
        
$fel_losenord = true;
    }
}

if (isset(
$_SESSION["inloggad"]) && $_SESSION["inloggad"] == true) {

    if (isset(
$_POST["starta"])) {
        
$_SESSION["namn"] = $_POST["namn"];
        
$_SESSION["svar1"] = $_POST["svar"];
        
$_SESSION["steg"] = 2;
    }

    else if (
$_SESSION["steg"] == 2 && isset($_POST["svar"])) {
        
$_SESSION["svar2"] = $_POST["svar"];
        
$_SESSION["steg"] = 3;
    }

    else if (
$_SESSION["steg"] == 3 && isset($_POST["svar"])) {
        
$_SESSION["svar3"] = $_POST["svar"];
        
$_SESSION["steg"] = 4;
    }

    if (isset(
$_POST["skicka_mejl"]) && $_SESSION["steg"] == 4) {

        
$mejl = $_POST["mejl"];

        
$poang = 0;

        if (
$_SESSION["svar1"] == $ratta_svar[1]) $poang++;
        if (
$_SESSION["svar2"] == $ratta_svar[2]) $poang++;
        if (
$_SESSION["svar3"] == $ratta_svar[3]) $poang++;

        
$rubrik = "Resultat från frågetävlingen";

        
$meddelande = "Spelare: " . $_SESSION["namn"] . "\n";
        
$meddelande .= "Antal rätt: $poang av 3";

        
$headers = "From: webb@noreply.se\r\n";
        
$headers .= "Reply-To: webb@noreply.se\r\n";
        
$headers .= "Content-Type: text/plain; charset=UTF-8\r\n";

        
$rubrik = mb_encode_mimeheader(
            
$rubrik,
            
"UTF-8",
            
"B",
            
"\r\n"
        
);

        if (
filter_var($mejl, FILTER_VALIDATE_EMAIL)) {
            
$mejl_skickat = mail(
                
$mejl,
                
$rubrik,
                
$meddelande,
                
$headers
            
);
        } else {
            
$fel_mejl = true;
        }
    }
}
?>

<!DOCTYPE html>
<html lang="sv">
<head>
    <meta charset="UTF-8">
    <title>Frågetävling</title>

    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 650px;
            margin: 40px auto;
            padding: 20px;
        }

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

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

        button {
            margin-top: 15px;
            padding: 8px 15px;
            cursor: pointer;
        }
    </style>
</head>

<body>

<h1>Frågetävling</h1>

<?php

if (!isset($_SESSION["inloggad"]) || $_SESSION["inloggad"] != true) {
?>

    <h2>Ange lösenord</h2>

    <?php
    
if (isset($fel_losenord)) {
        echo 
"<p>Fel lösenord. Försök igen.</p>";
    }
    
?>

    <form method="post">
        <label>Lösenord:</label>
        <input type="password" name="losenord" required>
        <button type="submit">Logga in</button>
    </form>

<?php

}

else if (
$_SESSION["steg"] == 0) {
?>

    <form method="post">

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

        <h2>Fråga 1</h2>
        <p>Vilket land är bäst i Norden?</p>

        <input type="radio" name="svar" value="A" required> A) Norge<br>
        <input type="radio" name="svar" value="B"> B) Sverige<br>
        <input type="radio" name="svar" value="C"> C) Finland<br>
        <input type="radio" name="svar" value="D"> D) Island<br>

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

    </form>

<?php

}

else if (
$_SESSION["steg"] == 2) {
?>

    <form method="post">

        <h2>Fråga 2</h2>
        <p>Vilken smak på Nocco är godast?</p>

        <input type="radio" name="svar" value="A" required> A) Cola<br>
        <input type="radio" name="svar" value="B"> B) Guavo<br>
        <input type="radio" name="svar" value="C"> C) Skumnisse<br>
        <input type="radio" name="svar" value="D"> D) Skumtomte<br>

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

    </form>

<?php

}

else if (
$_SESSION["steg"] == 3) {
?>

    <form method="post">

        <h2>Fråga 3</h2>
        <p>Vilket gymnasium är bäst i Stockholm?</p>

        <input type="radio" name="svar" value="A" required> A) Värmdö Gymnasium<br>
        <input type="radio" name="svar" value="B"> B) Fredrika Bremer<br>
        <input type="radio" name="svar" value="C"> C) Norra Real<br>
        <input type="radio" name="svar" value="D"> D) Östra Gymnasium<br>

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

    </form>

<?php

}

else if (
$_SESSION["steg"] == 4) {

    
$poang = 0;

    if (
$_SESSION["svar1"] == $ratta_svar[1]) $poang++;
    if (
$_SESSION["svar2"] == $ratta_svar[2]) $poang++;
    if (
$_SESSION["svar3"] == $ratta_svar[3]) $poang++;

    echo 
"<h2>Resultat</h2>";
    echo 
"<p>Spelare: " . htmlspecialchars($_SESSION["namn"]) . "</p>";
    echo 
"<p>Du fick $poang av 3 poäng!</p>";

    echo 
"<h3>Vilket land är bäst i Norden?</h3>";

    
$alternativ1 = [
        
"A" => "Norge",
        
"B" => "Sverige",
        
"C" => "Finland",
        
"D" => "Island"
    
];

    foreach (
$alternativ1 as $bokstav => $text) {
        if (
$bokstav == $ratta_svar[1]) {
            echo 
"<p class='ratt'>$bokstav) $text - Rätt svar</p>";
        } else if (
$bokstav == $_SESSION["svar1"]) {
            echo 
"<p class='fel'>$bokstav) $text - Ditt felaktiga svar</p>";
        } else {
            echo 
"<p>$bokstav) $text</p>";
        }
    }

    echo 
"<h3>Vilken smak på Nocco är godast?</h3>";

    
$alternativ2 = [
        
"A" => "Cola",
        
"B" => "Guavo",
        
"C" => "Skumnisse",
        
"D" => "Skumtomte"
    
];

    foreach (
$alternativ2 as $bokstav => $text) {
        if (
$bokstav == $ratta_svar[2]) {
            echo 
"<p class='ratt'>$bokstav) $text - Rätt svar</p>";
        } else if (
$bokstav == $_SESSION["svar2"]) {
            echo 
"<p class='fel'>$bokstav) $text - Ditt felaktiga svar</p>";
        } else {
            echo 
"<p>$bokstav) $text</p>";
        }
    }

    echo 
"<h3>Vilket gymnasium är bäst i Stockholm?</h3>";

    
$alternativ3 = [
        
"A" => "Värmdö Gymnasium",
        
"B" => "Fredrika Bremer",
        
"C" => "Norra Real",
        
"D" => "Östra Gymnasium"
    
];

    foreach (
$alternativ3 as $bokstav => $text) {
        if (
$bokstav == $ratta_svar[3]) {
            echo 
"<p class='ratt'>$bokstav) $text - Rätt svar</p>";
        } else if (
$bokstav == $_SESSION["svar3"]) {
            echo 
"<p class='fel'>$bokstav) $text - Ditt felaktiga svar</p>";
        } else {
            echo 
"<p>$bokstav) $text</p>";
        }
    }
?>

    <h3>Skicka resultat via mejl</h3>

    <?php
    
if (isset($mejl_skickat)) {
        if (
$mejl_skickat) {
            echo 
"<p>Mejlet har skickats.</p>";
        } else {
            echo 
"<p>Mejlet kunde inte skickas. Kontrollera serverns mejlinställningar.</p>";
        }
    }

    if (isset(
$fel_mejl)) {
        echo 
"<p>Ogiltig mejladress.</p>";
    }
    
?>

    <form method="post">

        <label>Mejladress:</label>
        <input type="email" name="mejl" required>

        <button type="submit" name="skicka_mejl">Skicka mejl</button>

    </form>

<?php
}
?>

</body>
</html>