Show sourcecode
The following files exists in this folder. Click to view.
account.php
admin_register.php
create_quiz.php
create_tables.php
index.php
login.php
nav.css
nav.php
quiz.php
quiz_select.php
register.php
result_details.php
result_simple.php
submit_create_quiz.php
submit_quiz.php
submit_create_quiz.php
82 lines UTF-8 Windows (CRLF)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
session_start();
include('../../incl/dbconnect.php');
// Kontrollera om användaren är inloggad och om de är administratör
if (!isset($_SESSION['user_id'])) {
die("Åtkomst nekad du måste vara inloggad.");
}
$user_id = $_SESSION['user_id'];
$stmt = $dbconn->prepare("SELECT is_admin FROM users_quiz WHERE id = ?");
$stmt->execute([$user_id]);
$is_admin = $stmt->fetchColumn();
if (!$is_admin) {
die("Åtkomst nekad bara för administratörer");
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Använd 'titel' eftersom formuläret skickar fältet med detta namn
$quiz_title = isset($_POST['titel']) ? trim($_POST['titel']) : '';
if (empty($quiz_title)) {
die("Quiz-titeln får inte vara tom");
}
// Hämta beskrivningen om den finns
$beskrivning = isset($_POST['beskrivning']) ? trim($_POST['beskrivning']) : '';
try {
// Lägg in testinformationen i testinfo_quiz-tabellen
$stmt = $dbconn->prepare("INSERT INTO testinfo_quiz (titel, beskrivning) VALUES (:titel, :beskrivning)");
$stmt->execute([':titel' => $quiz_title, ':beskrivning' => $beskrivning]);
$quiz_id = $dbconn->lastInsertId();
// Kontrollera att vi fått in frågor
if (!isset($_POST['fraga_text']) || !is_array($_POST['fraga_text'])) {
die("Frågetext saknas.");
}
// Loopar igenom de 5 frågorna
foreach ($_POST['fraga_text'] as $i => $question_text) {
$question_text = trim($question_text);
if (empty($question_text)) {
die("Fråga $i får inte vara tom");
}
// Lägg till frågan i questions_quiz-tabellen
$stmt = $dbconn->prepare("INSERT INTO questions_quiz (test_id, fråga_text) VALUES (:quiz_id, :question_text)");
$stmt->execute([':quiz_id' => $quiz_id, ':question_text' => $question_text]);
$question_id = $dbconn->lastInsertId();
// Kontrollera att svarsalternativen finns för denna fråga
if (!isset($_POST['svar_text'][$i]) || !is_array($_POST['svar_text'][$i])) {
die("Svar saknas för fråga $i.");
}
if (!isset($_POST['korrekt'][$i])) {
die("Välj vilket svar som är korrekt för fråga $i");
}
$correct_choice = $_POST['korrekt'][$i];
// Loopar igenom de 3 svarsalternativen för denna fråga
foreach ($_POST['svar_text'][$i] as $choice => $answer_text) {
$answer_text = trim($answer_text);
if (empty($answer_text)) {
die("Svarsalternativet får inte vara tomt för fråga $i, alternativ $choice.");
}
$is_correct = ($choice == $correct_choice) ? 1 : 0;
$stmt = $dbconn->prepare("INSERT INTO answers_quiz (fråga_id, svar_text, korrekt) VALUES (:question_id, :answer_text, :is_correct)");
$stmt->execute([':question_id' => $question_id, ':answer_text' => $answer_text, ':is_correct' => $is_correct]);
}
}
echo "Quiz har skapats<br>";
echo "<a href='create_quiz.php'>Skapa ett till quiz</a><br><br>";
echo "<a href='quiz_select.php'>Spela ett quiz</a>";
} catch (PDOException $e) {
die("Fel vid skapande av quiz " . $e->getMessage());
}
} else {
die("Ogiltig begäran");
}
?>