Show sourcecode
The following files exists in this folder. Click to view.
index.php
ovn_class.php
ovn_cookies1.php
ovn_cookies2.php
ovn_cookies3.php
ovn_cookies3_hemlig.php
ovn_cookies4.php
ovn_cookies5.php
ovn_cookies_main.php
ovn_form1.php
ovn_form1_svar.php
ovn_form2.php
ovn_form2_svar.php
ovn_form3.php
ovn_form3_svar.php
ovn_form4.php
ovn_form4_svar.php
ovn_form5.php
ovn_form5_svar.php
ovn_form6.php
ovn_form6_svar.php
ovn_form7.php
ovn_form7_svar.php
ovn_form8.php
ovn_form_main.php
ovn_funk1.php
ovn_gr1.php
ovn_ink1_main.php
ovn_ink1_text.php
ovn_ink2_1.php
ovn_ink2_2.php
ovn_ink2_3.php
ovn_ink2_footer.php
ovn_ink2_header.php
ovn_ink2_main.php
ovn_ink_main.php
ovn_quiz.php
ovn_str.php
test.html
ovn_quiz.php
340 lines UTF-8 Windows (CRLF)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340
<?php
session_start();
$losenord = "lösenord";
$fragor = [
1 => [
"fraga" => "När släpptes Hollow Knight?",
"alternativ" => [
"A" => "24 februari 2017",
"B" => "4 september 2025",
"C" => "6 december 2018",
"D" => "3 november 2023"
],
"ratt" => "A"
],
2 => [
"fraga" => "Vilket är det sämsta stället i Hollow Knight?",
"alternativ" => [
"A" => "Deepnest",
"B" => "The Hive",
"C" => "Royal Waterways",
"D" => "Greenpath"
],
"ratt" => "C"
],
3 => [
"fraga" => "Vilken ending får man om man klarar av Pantheon of Hallownest?",
"alternativ" => [
"A" => "The Hollow Knight",
"B" => "Sealed Siblings",
"C" => "Dream No more",
"D" => "Embrace the Void"
],
"ratt" => "D"
]
];
$steg = 0;
$namn = "";
$email = "";
$svar = [];
$resultat = false;
$felmeddelande = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST["losenord"])) {
if ($_POST["losenord"] == $losenord) {
$_SESSION["inloggad"] = true;
} else {
$felmeddelande = "Fel lösenord!";
}
}
if (isset($_POST["borja_om"])) {
session_unset();
session_destroy();
header("Location: " . $_SERVER["PHP_SELF"]);
exit;
}
if (isset($_SESSION["inloggad"]) &&
$_SESSION["inloggad"] === true &&
isset($_POST["steg"])) {
$steg = (int) $_POST["steg"];
$namn = trim($_POST["namn"] ?? "");
$email = trim($_POST["email"] ?? "");
$svar = json_decode($_POST["svar"] ?? "{}", true);
if (!is_array($svar)) {
$svar = [];
}
if ($steg >= 1 && $steg <= 3 &&
isset($_POST["svar_" . $steg])) {
$valt = $_POST["svar_" . $steg];
if (isset($fragor[$steg]["alternativ"][$valt])) {
$svar[$steg] = $valt;
}
}
if (isset($_POST["nasta"])) {
$steg++;
}
if (isset($_POST["skicka"])) {
$resultat = true;
}
}
}
function sakerText($text) {
return htmlspecialchars(
(string)$text,
ENT_QUOTES,
"UTF-8"
);
}
?>
<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="UTF-8">
<title>Frågetävling</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 700px;
margin: 40px auto;
padding: 20px;
background: #f4f4f4;
}
main {
background: white;
padding: 25px;
border-radius: 10px;
}
.alternativ {
display: block;
margin: 12px 0;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
}
.ratt {
background: #b8f2c2;
}
.fel {
background: #ffc4c4;
}
button {
margin-top: 15px;
padding: 10px 18px;
cursor: pointer;
}
.felmeddelande {
color: red;
}
</style>
</head>
<body>
<main>
<h1>Frågetävling</h1>
<?php if (!isset($_SESSION["inloggad"]) ||
$_SESSION["inloggad"] !== true) { ?>
<h2>Ange lösenord</h2>
<?php if ($felmeddelande != "") { ?>
<p class="felmeddelande">
<?= sakerText($felmeddelande) ?>
</p>
<?php } ?>
<form method="post">
<label for="losenord">Lösenord:</label>
<input type="password" id="losenord"
name="losenord" required>
<button type="submit">Logga in</button>
</form>
<?php } elseif ($resultat) { ?>
<?php
$poang = 0;
$mejltext = "Resultat från frågetävlingen\n\n";
$mejltext .= "Spelare: $namn\n";
$mejltext .= "Mejl: $email\n\n";
foreach ($fragor as $nummer => $fraga) {
$valt = $svar[$nummer] ?? "";
if ($valt == $fraga["ratt"]) {
$poang++;
}
$mejltext .= "Fråga $nummer: "
. $fraga["fraga"] . "\n";
$mejltext .= "Ditt svar: "
. ($fraga["alternativ"][$valt] ?? "Inget svar")
. "\n";
$mejltext .= "Rätt svar: "
. $fraga["alternativ"][$fraga["ratt"]]
. "\n\n";
}
$mejltext .= "Resultat: $poang av 3 rätt.";
if (!isset($_SESSION["resultat_mail_skickat"])) {
$amne = "Ditt resultat från frågetävlingen";
$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";
if (filter_var($email, FILTER_VALIDATE_EMAIL) &&
mail($email, $amne, $mejltext, $headers)) {
$_SESSION["resultat_mail_skickat"] = true;
$mejl_skickat = true;
} else {
$mejl_skickat = false;
}
} else {
$mejl_skickat = true;
}
?>
<h2>Resultat</h2>
<p>Spelare: <strong><?= sakerText($namn) ?></strong></p>
<p>Du fick <strong><?= $poang ?> av 3 rätt!</strong></p>
<?php if ($mejl_skickat) { ?>
<p>Resultatet har skickats till
<?= sakerText($email) ?>.</p>
<?php } else { ?>
<p class="felmeddelande">
Mejlet kunde inte skickas. Kontrollera
mejladressen och att servern kan skicka mejl.
</p>
<?php } ?>
<?php foreach ($fragor as $nummer => $fraga) { ?>
<h3>Fråga <?= $nummer ?>:
<?= sakerText($fraga["fraga"]) ?></h3>
<?php foreach ($fraga["alternativ"] as $bokstav => $text) {
$klass = "";
if ($bokstav == $fraga["ratt"]) {
$klass = "ratt";
} elseif (isset($svar[$nummer]) &&
$bokstav == $svar[$nummer]) {
$klass = "fel";
}
?>
<div class="alternativ <?= $klass ?>">
<?= sakerText($bokstav) ?>.
<?= sakerText($text) ?>
<?php if ($bokstav == $fraga["ratt"]) {
echo " - Rätt svar";
} elseif (isset($svar[$nummer]) &&
$bokstav == $svar[$nummer]) {
echo " - Ditt svar";
} ?>
</div>
<?php } ?>
<?php } ?>
<form method="post">
<button type="submit" name="borja_om" value="1">
Börja om
</button>
</form>
<?php } elseif (isset($_SESSION["inloggad"]) &&
$_SESSION["inloggad"] === true) { ?>
<?php if ($steg == 0) { ?>
<h2>Välkommen!</h2>
<form method="post">
<label for="namn">Ditt namn:</label><br>
<input type="text" id="namn" name="namn"
required maxlength="100"><br><br>
<label for="email">Din mejladress:</label><br>
<input type="email" id="email" name="email"
required><br><br>
<input type="hidden" name="steg" value="0">
<input type="hidden" name="svar" value="{}">
<button type="submit" name="nasta" value="1">
Börja tävlingen
</button>
</form>
<?php } elseif ($steg >= 1 && $steg <= 3) { ?>
<h2>Fråga <?= $steg ?> av 3</h2>
<p><?= sakerText($fragor[$steg]["fraga"]) ?></p>
<form method="post">
<input type="hidden" name="namn"
value="<?= sakerText($namn) ?>">
<input type="hidden" name="email"
value="<?= sakerText($email) ?>">
<input type="hidden" name="steg"
value="<?= $steg ?>">
<input type="hidden" name="svar"
value="<?= sakerText(json_encode($svar)) ?>">
<?php foreach ($fragor[$steg]["alternativ"]
as $bokstav => $text) { ?>
<label class="alternativ">
<input type="radio"
name="svar_<?= $steg ?>"
value="<?= sakerText($bokstav) ?>"
required>
<?= sakerText($bokstav) ?>.
<?= sakerText($text) ?>
</label>
<?php } ?>
<?php if ($steg < 3) { ?>
<button type="submit" name="nasta" value="1">
Nästa fråga
</button>
<?php } else { ?>
<button type="submit" name="skicka" value="1">
Skicka in svar
</button>
<?php } ?>
</form>
<?php } ?>
<?php } ?>
</main>
</body>
</html>