Webbserverprogrammering 1

Show sourcecode

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

webbsrvprg/exercises/

cookie.php
extra.php
formulär.php
index (2).php
index.php
inklud1.php
inklude/
inklude2.php
inlogg.php
medeltal.php
ovn_1.php
ovn_2.php
ovn_4.php
resultat.php
resultat2.php
resultat3.php
session.php
sid1.php
sid2.php
sid3.php
sidslut.php
sidstart.php
textfeedback.php
textstreng.php
valkommen.php

formulär.php

235 lines UTF-8 Windows (CRLF)
<?php
session_start
();
$rattLosenord = "123";

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

if (!isset(
$_SESSION["inloggad"])) {
?>
<h3>Skriv in lösenordet</h3>
<?php
if (isset($felLosenord)) {
    echo 
"Fel lösenord, försök igen.";
}
?>
<form method="post">
    Lösenord:
    <input type="password" name="losenord" required>
    <input type="submit" value="Logga in">
</form>
<?php
exit;
}
?>
<?php
$fragor 
= [
    
1 => ["Vad heter Sveriges huvudstad?", ["Göteborg", "Stockholm", "Malmö", "Uppsala"], 2],
    
2 => ["Hur många ben har en spindel?", ["Sex", "Tio", "Åtta", "Fyra"], 3],
    
3 => ["Vilken planet kallas den röda planeten?", ["Mars", "Venus", "Jupiter", "Merkurius"], 1]
];

$namn = "";
$svar = [];

if (isset(
$_POST["namn"])) {
    
$namn = $_POST["namn"];
}

if (isset(
$_POST["svar"])) {
    
$svar = $_POST["svar"];
}

if (isset(
$_POST["nytt_svar"]) && isset($_POST["fraga"])) {
    
$nummer = (int) $_POST["fraga"];
    
$svar[$nummer] = $_POST["nytt_svar"];
}

$del = "del1";

if (isset(
$_POST["del"])) {
    
$del = $_POST["del"];
}
?>
<?php
if ($del == "del1") {
?>
<h2>Quiz!!</h2>

<form method="post">
    Skriv ditt namn:
    <input type="text" name="namn" required>

    <h3>Fråga 1</h3>

    <p><?php echo $fragor[1][0]; ?></p>

    <?php
    
foreach ($fragor[1][1] as $index => $alternativ) {
        
$alternativNummer = $index + 1;

        echo 
'<input type="radio" name="nytt_svar" value="' .
             
$alternativNummer . '" required>';

        echo 
htmlspecialchars($alternativ) . "<br>";
    }
    
?>

    <input type="hidden" name="fraga" value="1">
    <input type="hidden" name="del" value="del2">

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

<?php
} elseif ($del == "del2") {
?>
<h3>Fråga 2</h3>

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

<form method="post">

    <?php
    
foreach ($fragor[2][1] as $index => $alternativ) {
        
$alternativNummer = $index + 1;

        echo 
'<input type="radio" name="nytt_svar" value="' .
             
$alternativNummer . '" required>';

        echo 
htmlspecialchars($alternativ) . "<br>";
    }
    
?>

    <input type="hidden" name="namn"
           value="<?php echo htmlspecialchars($namn); ?>">

    <?php
    
foreach ($svar as $fraga => $valtSvar) {
        echo 
'<input type="hidden" name="svar[' . $fraga .
             
']" value="' . htmlspecialchars($valtSvar) . '">';
    }
    
?>

    <input type="hidden" name="fraga" value="2">
    <input type="hidden" name="del" value="del3">

    <input type="submit" value="Nästa fråga">
</form>
<?php
} elseif ($del == "del3") {
?>
<h3>Fråga 3</h3>

<p><?php echo $fragor[3][0]; ?></p>
<form method="post">
    <?php
    
foreach ($fragor[3][1] as $index => $alternativ) {
        
$alternativNummer = $index + 1;

        echo 
'<input type="radio" name="nytt_svar" value="' .
             
$alternativNummer . '" required>';

        echo 
htmlspecialchars($alternativ) . "<br>";
    }
    
?>

    <input type="hidden" name="namn"
           value="<?php echo htmlspecialchars($namn); ?>">

    <?php
    
foreach ($svar as $fraga => $valtSvar) {
        echo 
'<input type="hidden" name="svar[' . $fraga .
             
']" value="' . htmlspecialchars($valtSvar) . '">';
    }
    
?>
    <input type="hidden" name="fraga" value="3">
    <input type="hidden" name="del" value="rattning">

    <input type="submit" value="Visa resultat">
</form>
<?php
} elseif ($del == "rattning") {
$poang = 0;
foreach (
$fragor as $nummer => $fraga) {
    if (isset(
$svar[$nummer]) &&
        
$svar[$nummer] == $fraga[2]) {
        
$poang++;
    }
}
?>
<h2>Resultat</h2>

<p>Namn: <?php echo htmlspecialchars($namn); ?></p>

<p>Du fick <?php echo $poang; ?> av 3 poäng.</p>

<?php
foreach ($fragor as $nummer => $fraga) {
    echo 
"<h3>Fråga " . $nummer . "</h3>";
    echo 
"<p>" . htmlspecialchars($fraga[0]) . "</p>";

    foreach (
$fraga[1] as $index => $alternativ) {
        
$alternativNummer = $index + 1;

        if (
$alternativNummer == $fraga[2]) {
            echo 
'<p style="color: green;">' .
                 
htmlspecialchars($alternativ) .
                 
' (Rätt svar)</p>';
        } elseif (isset(
$svar[$nummer]) &&
                  
$svar[$nummer] == $alternativNummer) {
            echo 
'<p style="color: red;">' .
                 
htmlspecialchars($alternativ) .
                 
' (Ditt svar)</p>';
        } else {
            echo 
'<p>' . htmlspecialchars($alternativ) . '</p>';
        }
    }
}
?>
<form method="post">

    <input type="hidden" name="namn"
           value="<?php echo htmlspecialchars($namn); ?>">

    <input type="hidden" name="poang"
           value="<?php echo $poang; ?>">

    <input type="hidden" name="del" value="mejl">

    Skriv e-postadressen du vill resultatet ska skickas till:

    <input type="email" name="epost" required>

    <input type="submit" value="Skicka resultat">
</form>
<?php
} elseif ($del == "mejl") {
    
$namn = $_POST["namn"] ?? "";
$poang = $_POST["poang"] ?? 0;
$epost = $_POST["epost"] ?? "";

$mottagare = $epost;
$amne = "Resultat från quizet";
$meddelande = "Namn: " . $namn .
              
"\nPoäng: " . $poang . " av 3";

$headers = "From: agnber25@varmdogymnasium.se";

if (
filter_var($epost, FILTER_VALIDATE_EMAIL)) {
    if (
mail($mottagare, $amne, $meddelande, $headers)) {
        echo 
"<p>Resultatet har skickats!</p>";
    } else {
        echo 
"<p>Det gick inte att skicka e-postmeddelandet.</p>";
    }
} else {
    echo 
"<p>E-postadressen är inte giltig.</p>";
}
}
?>