Show sourcecode
The following files exists in this folder. Click to view.
create_test.php
create_test_fuckingtrasig.php
hash.php
index.php
login.php
main.php
personal_results.php
setup.php
sign_up.php
test_correcting.php
tests.php
user_administration.php
verification.php
tests.php
73 lines UTF-8 Windows (CRLF)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
<?php
session_start(["gc_maxlifetime" => 86400]);
?>
<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<style>
fieldset{
border: 2px solid black;
margin: 1px;
}
</style>
<body>
<form method="POST" action="test_correcting.php">
<?php
$test_id = $_GET["id"]; // ID't ska ha skickats med i GET, annars har användaren fifflat på något sätt och får hantera felmeddelandet själv
echo('<input type="hidden" name="test_id" value="' . $test_id .'">'); // Så att man vet vilket test det är.
try {
/** @var PDO $dbconn */
include("../databaser/dbconnection.php");
include("verification.php");
// Hittar testets namn. Väjer att inte använda JOIN för att hämta frågor och svar.
$sql = "SELECT name FROM quiz_tests WHERE id=?";
$stmt = $dbconn->prepare($sql);
$data = [$test_id];
$stmt->execute($data);
$test_name = $stmt->fetch(PDO::FETCH_ASSOC)["name"]; // Plockar ut namnet
echo("<h1> $test_name</h1>");
$sql = "SELECT * FROM quiz_questions WHERE test_id = ? ORDER BY id"; // Sorterar ALLTID frågor efter id
$stmt = $dbconn->prepare($sql);
$data = [$test_id]; // Repeterar för tydlighet
$stmt->execute($data);
$question_num = 1; // För namnen på inputsen. Börjar på 1.
while ($question = $stmt->fetch(PDO::FETCH_ASSOC)){
$sql = "SELECT * FROM quiz_answers WHERE question_id = ?";
$answers_stmt = $dbconn->prepare($sql); // Annan för att inte sabba loopen
$data = [$question["id"]];
$answers_stmt->execute($data);
echo('<fieldset><legend>' . $question["text"] . '</legend>');
// Namnet på varje fråga är question_num.
while ($answer = $answers_stmt->fetch(PDO::FETCH_ASSOC)){
$answer_num = $answer["answer_num"];
$answer_text = $answer["text"];
$id = $question_num . "_" . $answer_num;
echo('<input type="radio" name="' . $question_num . '" value =' . $answer_num . ' id = '. $id . ' required><label for="' . $id . '">' . $answer_text . '</label><br>');
}
$question_num += 1;
echo('</fieldset>');
}
} catch(PDOException $e){
echo($e->getMessage());
}
?>
<button type="submit">Rätta</button>
</form>
</body>
</html>