Show sourcecode
The following files exists in this folder. Click to view.
webbsrvprg/exercises/inlamning_1/
index.php
uppgifter1-3.php
uppgifter4-6.php
uppgifter1-3.php
100 lines UTF-8 Windows (CRLF)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Frågor</title>
</head>
<body>
<?php
$q1 = [
"question" => "Vad heter Harry?",
"alts" => ["Harry", "Något annat", "Göran", "Hemligt"],
"correct" => 0,
];
$q2 = [
"question" => "1 + 2?",
"alts" => ["1", "2", "3", "4"],
"correct" => 2,
];
$q3 = [
"question" => "Korvstroganof?",
"alts" => ["Kanske det", "Absolut inte", "Kanske inte det", "Absolut"],
"correct" => 3,
];
$q4 = [
"question" => "Vilke är den tionde bokstaven i alfabetet?",
"alts" => ["H", "I", "J", "Ö"],
"correct" => 2,
];
$questions = [$q1, $q2, $q3, $q4];
$currentQuestion = 0;
$prev_answers = "";
if (isset($_GET["current"])) {
$currentQuestion = intval($_GET["current"]);
$newAns = ""; // Byter ut alla mellanslag mot _ så att man kan använda mellanslag för att skilja på olika svar
if (isset($_GET["name"])) {
// Då är det första formulärsidan och hanteras speciellt
$name = htmlspecialchars(str_replace(' ', '_', $_GET["name"]));
$mail = $_GET["mail"];
$newAns = $name . " " . $mail;
} else {
$newAns = $_GET["ans"];
}
$prev_answers = $_GET["prevAnswers"] . " " . $newAns; // Lägger på alla tidigare insamlade svar med den nya
}
echo ('<form style="margin: 100px 35vw;" method="get">');
if ($currentQuestion == 0) {
echo ('<input type="text" name="name" id="name" placeholder="Harry" required><label for="name">Skriv ditt namn</label><br><br>');
echo ('<input type="text" name="mail" id="mail" placeholder="harmol23@varmdogymnasium.se" required><label for="mail">Skriv din mejl</label><br><br>');
} else if ($currentQuestion <= count($questions)) {
// Lägger ut den frågan som det är dags för
$qDict = $questions[$currentQuestion - 1];
echo ('<fieldset><legend>' . $qDict["question"] . '</legend>');
for ($i = 0; $i < count($qDict["alts"]); $i += 1) {
$alt = $qDict["alts"][$i];
echo ('<input type="radio" name="ans" value="' . $i . '" id="q' . $currentQuestion . '_' . $i . '" required><label for="q' . $currentQuestion . '_' . $i . '">' . $alt . '</label><br><br>');
}
echo ('</fieldset>');
} else {
$prev_answers_arr = array_slice(explode(" ", $prev_answers), 1); // Gav ett tomt i starten av nån anledning
$name = htmlspecialchars(str_replace("_", " ", $prev_answers_arr[0])); // Tar ut namnet och lägger på mellanslaget igen
$mail = $prev_answers_arr[1];
$q_answers = array_slice($prev_answers_arr, 2);
$num_of_correct = 0;
for ($i = 0; $i < count($questions); $i++) {
if ($questions[$i]["correct"] == $q_answers[$i]) {
$num_of_correct += 1;
}
}
$message = "Du heter $name och du har $num_of_correct rätta svar";
echo ($message);
$mail = str_replace(" ", "", $mail);
mail($mail, "Fragor", $message);
}
if ($currentQuestion <= count($questions)) {
// Lägger till gömda inputfälten
echo ('<input type="hidden" name="prevAnswers" value ="' . $prev_answers . '">');
$currentQuestion += 1;
echo ('<input type="hidden" name="current" value ="' . $currentQuestion . '">');
// Lägger ut submiten
if ($currentQuestion >= count($questions)) {
echo ('<button type="submit">Skicka in</button>');
} else {
echo ('<button type="submit">Nästa</button>');
}
}
?>
</form>
</body>
</html>