Show sourcecode
The following files exists in this folder. Click to view.
admin.php
createQuiz.php
createadmin.php
logIn.php
myStats.php
playquiz.php
result.php
scoreboard.php
signIn.php
start.php
startsida.php
stats.php
style.css
tables.php
update.php
createQuiz.php
150 lines UTF-8 Windows (CRLF)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
<?php
/** @var PDO $dbconn */
include ("start.php");
if ($_COOKIE["type"] != "admin") {
header("location: startsida.php");
}
?>
<?php
session_start();
$quizDone = false;
try {
// Kör koden om quizets namn har sats
if (isset($_POST["quizName"]) && isset($_POST["questions"])) {
$quizName = $_POST["quizName"];
// Sätt antalet frågor till 1 om det är mindre än 1
$questions = (int)$_POST["questions"];
if ($questions <= 0) {
$questions = 1;
}
// Spara quizets namn i en tabell
$sql = "INSERT INTO quizes (quizname)
VALUES (?)";
$stmt = $dbconn->prepare($sql);
$data = array($quizName);
$stmt->execute($data);
$quizId = $dbconn->lastInsertId();
// Spara quizets namn, id, antal frågor och vilke fråga skaparen skriver just nu i en session
$_SESSION["quizName"] = $quizName;
$_SESSION["quizId"] = $quizId;
$_SESSION["questions"] = $questions;
$_SESSION["currentQuestion"] = 0;
}
// Körs varje gång en fråga och antalet svarsalternativ den har skickas
else if (isset($_POST["question"]) && isset($_POST["answers"])) {
// Öka värdet som håller koll på vilken fråga som skrivs med 1
$_SESSION["currentQuestion"]++;
$question = $_POST["question"];
$answers = (int)$_POST["answers"];
// Sätt antalet svarsalternativ till 1 om det är mindre än 1
if ($answers <= 0) {
$answers = 1;
}
// Spara frågan och id:t till quizet den tillhör i en tabell
$sql = "INSERT INTO questions (question, quizId)
VALUES (?, ?)";
$stmt = $dbconn->prepare($sql);
$data = array($question, $_SESSION["quizId"]);
$stmt->execute($data);
$questionId = $dbconn->lastInsertId();
// Spara frågan, dess id och antalet svarsalternativ i sessionen
$_SESSION["question"] = $question;
$_SESSION["questionId"] = $questionId;
$_SESSION["answers"] = $answers;
}
// Körs om en av svarsalternativen valts som korrekt(då har även svarsalternativen fyllt i)
else if (isset($_POST["isCorrect"])) {
$currentAnswer = 1;
while (isset($_POST["answer$currentAnswer"])) {
// Lägg till alla svarsalternativ i en tabell med id:t till
// frågan de tillhör och om de är korrekt eller inte
$sql = "INSERT INTO answers (answer, isCorrect, questionId)
VALUES (?, ?, ?)";
$answer = $_POST["answer$currentAnswer"];
$isCorrect = 0;
if ($currentAnswer == $_POST["isCorrect"]) {
$isCorrect = 1;
}
$stmt = $dbconn->prepare($sql);
$data = array($answer, $isCorrect, $_SESSION["questionId"]);
$stmt->execute($data);
$currentAnswer++;
}
// Rensa frågan så att processen kan upprepas med nästa fråga
$_SESSION["question"] = null;
// Om nuvarande frågan var den sista, quizet är klart
if ($_SESSION["currentQuestion"] >= $_SESSION["questions"]) {
$quizDone = true;
}
}
} catch (PDOException $e) {
echo $e->getMessage() . "<br>";
}
if ($quizDone) {
// Är quizet klart, avsluta sessionen och skriv ut att quizet är klart
session_destroy();
echo "Quizet är klart";
} else {
// Om quizet inte är klart, skapa ett formulär
echo "<form method='post'>";
if (!isset($_SESSION["quizName"])) {
// Om quiznamnet inte är satt, be om det och antalet frågor
echo "<input type='text' name='quizName' placeholder='Quiznamn' required><br>";
echo "<input type='number' name='questions' placeholder='Antal frågor' required><br>";
} else if (!isset($_SESSION["question"]) && $_SESSION["currentQuestion"] <= $_SESSION["questions"]) {
// Annars, om det inte finns en fråga som skrivs och det ska finnas en till,
// be om det och antal svarsalternativ
// Skriv ut quizets namn
echo "<h1>" . $_SESSION["quizName"] . "</h1>";
echo "<input type='text' name='question' placeholder='Fråga' required><br>";
echo "<input type='number' name='answers' placeholder='Antal svar' required><br>";
} else {
// Annars, skriv ut quizets namn, frågans namn,
// och be om alla svarsalternativ samt vilken som är korrekt
echo "<h1>" . $_SESSION["quizName"] . "</h1>";
echo "<h2>" . $_SESSION["question"] . "</h2>";
$currentAnswer = 1;
while ($currentAnswer <= (int)$_SESSION["answers"]) {
echo "<input type='text' name='answer$currentAnswer' placeholder='Svar $currentAnswer' required>
<input type='radio' name='isCorrect' value='$currentAnswer' required><br>";
$currentAnswer++;
}
}
// Skriv ut slutet av formuläret
echo "<input type='submit' value='Skicka'></form>";
}
?>
</body>
</html>