Show sourcecode
The following files exists in this folder. Click to view.
css/
dashboard.php
inc/
index.php
js/
login.php
logout.php
profile.php
quizzes.php
register.php
results.php
quizzes.php
116 lines UTF-8 Windows (CRLF)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
<?php
/* =========================
Inkludera konfiguration,
databas och login
========================= */
include("inc/config.php");
include("inc/connect_db.php");
include("inc/db_manager.php");
$mode = "strict";
include("inc/login_check.php");
/* =========================
Hämta quiz baserat på ID
========================= */
$quiz_id = $_GET['id'] ?? null;
$quiz = getQuiz($conn, "id", $quiz_id);
if (!$quiz) {
// Quiz hittades inte → skicka till startsidan
header("Location: index.php");
exit();
}
/* =========================
Sidtitel
========================= */
$page_title = $quiz['title'] . " - Quizzeria";
/* =========================
Hämta frågor till quizet
========================= */
$questions = getQuestions($conn, "quiz_id", $quiz_id);
/* =========================
Hantera inskickat quiz
========================= */
if (isset($_POST['submit_quiz'])) {
$answers = [];
$score = 0;
foreach ($_POST['questions'] as $question_id => $question_data) {
$choice_id = $question_data['choice_id'];
$choice = getChoice($conn, "id", $choice_id);
$question = getQuestion($conn, "id", $question_id);
if ($choice['is_correct'] == 1) {
$score += $question['points'];
}
$answers[] = [
"choice_id" => $choice_id,
"question_id" => $question_id
];
}
// Lägg till användarens försök
$attempt_id = addAttempt($conn, $score, $quiz_id, $id);
// Spara varje svar
foreach ($answers as $answer) {
addAnswer($conn, $answer['choice_id'], $attempt_id, $answer['question_id']);
}
// Uppdatera användarpoäng
addPoints($conn, $id, $score);
// Skicka till resultat-sidan
header("Location: results.php?id={$attempt_id}");
exit();
}
?>
<!DOCTYPE html>
<html lang="sv">
<?php $js = ["quiz"]; ?>
<?php include("inc/head.php"); ?>
<body>
<?php include("inc/header.php"); ?>
<h2 class="quiz_title"><?php echo htmlspecialchars($quiz['title']); ?></h2>
<p class="quiz_desc"><?php echo htmlspecialchars($quiz['description']); ?></p>
<form id="quiz_form" method="POST">
<?php foreach ($questions as $question):
$choices = getChoices($conn, "question_id", $question['id']); ?>
<div id="question_<?php echo $question['id']; ?>" class="question">
<h3><?php echo htmlspecialchars($question['text']); ?></h3>
<?php foreach ($choices as $choice): ?>
<label>
<input type="radio" name="questions[<?php echo $question['id']; ?>][choice_id]"
value="<?php echo $choice['id']; ?>" required>
<?php echo htmlspecialchars($choice['text']); ?>
</label>
<?php endforeach; ?>
</div>
<?php endforeach; ?>
<div id="quiz_btn_holder">
<button type="button" id="prev_question">Tillbaka</button>
<button type="button" id="next_question">Nästa fråga</button>
<button type="submit" name="submit_quiz" id="submit_quiz">Skicka</button>
</div>
</form>
<?php include("inc/footer.php"); ?>
</body>
</html>