Show sourcecode
The following files exists in this folder. Click to view.
Cookie/
Forms/
Funktioner/
Grunder/
Klasser/
Repetition/
Strings/
formular_tavling.php
formular_tavling.php
167 lines UTF-8 Windows (CRLF)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Många frågor, få svar</title>
</head>
<body>
<form action="" method="get">
<?php
$password = isset($_GET["password"]) ? $_GET["password"] : "";
if ($password == "") {
?>
<h1>För att få göra quizet måste du ha ett lösenord:</h1>
<label for="password">Lösenord:</label>
<input type="password" name="password" id="password">
</form>
<?php
} elseif ($password != "Superhemligt") {
?>
<h1>Fel lösenord!</h1>
<label for="password">Lösenord:</label>
<input type="password" name="password" id="password">
</form>
<?php
} else {
?>
<!-- <form method="get"> -->
<!-- Använd get tills inlämning, sedan byt till post! -->
<?php
$Q = isset($_GET["Q"]) ? htmlspecialchars($_GET["Q"]) : '0';
$name = isset($_GET["name"]) ? htmlspecialchars($_GET["name"]) : ''; // Konvertera symboler till html säkra karaktärer
$A1 = isset($_GET["Vegetables"]) ? htmlspecialchars($_GET["Vegetables"]) : '';
$A2 = isset($_GET["Mountain"]) ? htmlspecialchars($_GET["Mountain"]) : '';
$A3 = isset($_GET["PHP"]) ? htmlspecialchars($_GET["PHP"]) : '';
$email = isset($_GET["email"]) ? htmlspecialchars($_GET["email"]) : '';
$Q1HTML = '<h3>Fråga 1: Vad är den botaniska definitionen för en grönsak?</h3>
<input type="radio" name="Vegetables" value="1" required> En ätbar växtdel som oftast konsumeras som en del av en huvudmåltid.<br>
<input type="radio" name="Vegetables" value="2"> En frukt som äts som en del av en huvudmåltid.<br>
<input type="radio" name="Vegetables" value="3"> En växt som odlas för sina ätbara blad.<br>
<input type="radio" name="Vegetables" value="4"> Det finns ingen botanisk definition.<br>';
$Q2HTML = '<h3>Fråga 2: Vilken är den högsta bergstoppen i världen?</h3>
<input type="radio" name="Mountain" value="1" required> K2<br>
<input type="radio" name="Mountain" value="2"> Mount Everest<br>
<input type="radio" name="Mountain" value="3"> Kangchendzönga<br>
<input type="radio" name="Mountain" value="4"> Lhotse<br>';
$Q3HTML = '<h3>Fråga 3: Vad står PHP för?</h3>
<input type="radio" name="PHP" value="1" required> Personal Home Page<br>
<input type="radio" name="PHP" value="2"> PHP: Hypertext Preprocessor<br>
<input type="radio" name="PHP" value="3"> Private Hosting Platform<br>
<input type="radio" name="PHP" value="4"> Programming Hypertext Parser<br>';
echo "<input type='hidden' name='password' value='{$password}'>";
if ($Q > 0) {
echo "<input type='hidden' name='name' value='{$name}'>";
}
if ($Q > 1) {
echo "<input type='hidden' name='Vegetables' value='{$A1}'>";
}
if ($Q > 2) {
echo "<input type='hidden' name='Mountain' value='{$A2}'>";
}
if ($Q > 3) {
echo "<input type='hidden' name='PHP' value='{$A3}'>";
}
if ($Q == '0') :
?>
<h2>Välkommen! Skriv ditt namn för att börja:</h2>
<input type="text" id="name" name="name" required>
<button type="submit" name="Q" value="1">Starta</button>
<?php elseif ($Q == '1') : echo $Q1HTML; ?>
<button type="submit" name="Q" value="2">Nästa fråga</button>
<?php elseif ($Q == '2') : echo $Q2HTML;?>
<button type="submit" name="Q" value="3">Nästa fråga</button>
<?php elseif ($Q == '3') : echo $Q3HTML;?>
<button type="submit" name="Q" value="4">Skicka in</button>
<?php elseif ($Q == '4') :
?>
<h2>Tack för att du deltog, <?php echo $name; ?>.</h2>
<?php
$A1Correct = 4;
$A2Correct = 2;
$A3Correct = 2;
$correct = 0;
if ($A1 == $A1Correct) $correct++;
if ($A2 == $A2Correct) $correct++;
if ($A3 == $A3Correct) $correct++;
$message = "<h3> Du fick $correct/3 rätt! </h3>";
// Markerar rätt svar och fel svar
function highlightAnswers(&$str, &$n, &$ans, &$ansCorrect) : void {
if ($n == $ansCorrect && $ansCorrect == $ans) {
$str = "<span style='color:limegreen'>" . $str . "</span>";
}
elseif ($n == $ansCorrect) {
$str = "<span style='color:green'>" . $str . "</span>";
}
elseif ($n == $ans) {
$str = "<span style='color:red'>" . $str . "</span>";
}
}
foreach ([$Q1HTML, $Q2HTML, $Q3HTML] as $i => $value) {
$text = [];
preg_match_all("/>.+</", $value, $text);
foreach ($text[0] as $j => $str) {
$str = substr($str, 1, -1);
if (substr($str, 0, 6) == "Fråga") {
$str = "<h4>" . $str . "</h4>";
}
// Fuck it vi hårdkodar det
if ($i == 0) {
highlightAnswers($str, $j, $A1, $A1Correct);
}
elseif ($i == 1) {
highlightAnswers($str, $j, $A2, $A2Correct);
}
elseif ($i == 2) {
highlightAnswers($str, $j, $A3, $A3Correct);
}
$str .= "<br>";
// echo $str;
$message .= $str;
}
}
echo $message . "<hr>" ?>
<p>Vill du ha det skickat på epost?</p>
<input type="email" name="email" id="email">
<button type="submit" name="Q" value="4">Skicka epost</button>
<br><br>
<input type="submit" value="Kör igen">
<?php
if ($email == "") {
// Do nothing
} elseif (!preg_match("/.+@.{3,}\..{2,}/", $email)) {
echo "Ogiltig epost!";
} else {
$mailhead = "MIME-Version: 1.0\r\n";
$mailhead .= "Content-type: text/html; charset=utf-8\r\n";
$mailhead .= "From: " . $_GET["email"];
mail($email, "Dina resultat", $message, $mailhead);
echo "Epost skickat!";
}
?>
<?php endif; ?>
</form>
<?php } ?>
</body>
</html>