Show sourcecode
The following files exists in this folder. Click to view.
formular7/
fragetavling.php
funktioner/
grunder/
index.php
fragetavling.php
272 lines UTF-8 Windows (CRLF)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
<?php
session_start();
$losenord = "1234";
$fragor = [
1 => [
"fraga" => "Vad heter Sveriges huvudstad?",
"A" => "Göteborg",
"B" => "Stockholm",
"C" => "Malmö",
"D" => "Uppsala",
"ratt" => "B"
],
2 => [
"fraga" => "Vad är 5 * 5?",
"A" => "10",
"B" => "20",
"C" => "25",
"D" => "30",
"ratt" => "C"
],
3 => [
"fraga" => "Vilket språk används för att skapa dynamiska webbsidor på en server?",
"A" => "CSS",
"B" => "PHP",
"C" => "Excel",
"D" => "Word",
"ratt" => "B"
]
];
if (!isset($_SESSION["steg"])) {
$_SESSION["steg"] = 0;
}
$fel = "";
// Logga in med lösenord
if (isset($_POST["loggain"])) {
if ($_POST["losenord"] == $losenord) {
session_regenerate_id(true);
$_SESSION["inloggad"] = true;
$_SESSION["steg"] = 1;
unset($_SESSION["svar"]);
unset($_SESSION["namn"]);
unset($_SESSION["poang"]);
} else {
$fel = "Fel lösenord!";
}
}
// Spara namn
if (
isset($_SESSION["inloggad"]) &&
$_SESSION["inloggad"] === true &&
$_SESSION["steg"] == 1 &&
isset($_POST["namn"])
) {
$namn = trim($_POST["namn"]);
if ($namn != "") {
$_SESSION["namn"] = $namn;
$_SESSION["steg"] = 2;
} else {
$fel = "Skriv ditt namn!";
}
}
// Spara svar och visa nästa fråga
if (
isset($_SESSION["inloggad"]) &&
$_SESSION["inloggad"] === true &&
isset($_POST["svar"]) &&
isset($_POST["fraga"])
) {
$nummer = (int) $_POST["fraga"];
$svar = $_POST["svar"];
if (
$nummer == $_SESSION["steg"] - 1 &&
isset($fragor[$nummer]) &&
isset($fragor[$nummer][$svar]) &&
$nummer >= 1 &&
$nummer <= 3
) {
$_SESSION["svar"][$nummer] = $svar;
if ($nummer < 3) {
$_SESSION["steg"] = $nummer + 2;
} else {
$_SESSION["steg"] = 5;
}
}
}
// Rätta svaren
if (
isset($_SESSION["inloggad"]) &&
$_SESSION["inloggad"] === true &&
$_SESSION["steg"] == 5 &&
isset($_POST["skicka"])
) {
$poang = 0;
for ($i = 1; $i <= 3; $i++) {
if (
isset($_SESSION["svar"][$i]) &&
$_SESSION["svar"][$i] == $fragor[$i]["ratt"]
) {
$poang++;
}
}
$_SESSION["poang"] = $poang;
$_SESSION["steg"] = 6;
}
// Skicka resultat via mejl
if (
isset($_SESSION["inloggad"]) &&
$_SESSION["inloggad"] === true &&
$_SESSION["steg"] == 6 &&
isset($_POST["skickamejl"])
) {
$mottagare = "jeslin25@varmdogymnasium.se";
$subject = "Resultat från frågetävlingen";
$message = $_SESSION["namn"] . " fick "
. $_SESSION["poang"] . " av 3 rätt.";
$headers = "From: No Reply <no-reply@labb.vgy.se>\r\n";
$headers .= "Reply-To: no-reply@labb.vgy.se\r\n";
$headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
if (mail($mottagare, $subject, $message, $headers)) {
$mejlmeddelande = "Resultatet har skickats!";
} else {
$mejlmeddelande = "Det gick inte att skicka resultatet.";
}
}
// Börja om
if (isset($_POST["borjaom"])) {
session_unset();
session_destroy();
header("Location: " . $_SERVER["PHP_SELF"]);
exit;
}
?>
<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="UTF-8">
<title>Frågetävling</title>
</head>
<body>
<h1>Frågetävling</h1>
<?php
if (!isset($_SESSION["inloggad"]) || $_SESSION["inloggad"] !== true) {
?>
<form method="post">
Lösenord:
<input type="password" name="losenord" required>
<button type="submit" name="loggain">Logga in</button>
</form>
<?php echo htmlspecialchars($fel); ?>
<?php
} elseif ($_SESSION["steg"] == 1) {
?>
<form method="post">
Vad heter du?
<input type="text" name="namn" required>
<button type="submit">Börja</button>
</form>
<?php echo htmlspecialchars($fel); ?>
<?php
} elseif ($_SESSION["steg"] >= 2 && $_SESSION["steg"] <= 4) {
$nummer = $_SESSION["steg"] - 1;
$fraga = $fragor[$nummer];
?>
<h2>Fråga <?php echo $nummer; ?> av 3</h2>
<p><?php echo htmlspecialchars($fraga["fraga"]); ?></p>
<form method="post">
<?php
foreach (["A", "B", "C", "D"] as $bokstav) {
?>
<input
type="radio"
name="svar"
value="<?php echo $bokstav; ?>"
required
>
<?php echo htmlspecialchars($fraga[$bokstav]); ?><br>
<?php
}
?>
<input
type="hidden"
name="fraga"
value="<?php echo $nummer; ?>"
>
<button type="submit">Nästa</button>
</form>
<?php
} elseif ($_SESSION["steg"] == 5) {
?>
<p>Du har svarat på alla frågor!</p>
<form method="post">
<button type="submit" name="skicka">Skicka in svar</button>
</form>
<?php
} elseif ($_SESSION["steg"] == 6) {
?>
<h2>Resultat</h2>
<p>
<?php echo htmlspecialchars($_SESSION["namn"]); ?>,
du fick <?php echo $_SESSION["poang"]; ?> av 3 rätt!
</p>
<form method="post">
<button type="submit" name="skickamejl">
Skicka resultat via mejl
</button>
</form>
<?php
if (isset($mejlmeddelande)) {
echo htmlspecialchars($mejlmeddelande);
}
?>
<form method="post">
<button type="submit" name="borjaom">Börja om</button>
</form>
<?php
}
?>
</body>
</html>