Webbserver - Love Blomberg

Show sourcecode

The following files exists in this folder. Click to view.

public_html/exercises/quizproject/quiz/

createquiz.php
submission.php
submit_quiz.php
takequiz.php
viewquizzes.php
viewsubmissions.php

viewquizzes.php

93 lines UTF-8 Windows (CRLF)
<?php
session_start
();

// Auth så att användare är inloggad och/eller admin
$loggedIn = isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == 1;
$isAdmin = isset($_SESSION['is_admin']) && $_SESSION['is_admin'] == 1;
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Quizzer | View Quiz</title>
    <link rel="stylesheet" href="../quiz_styles.css">
    <link rel="shortcut icon" href="../icons/dashboard-icon.svg" type="image/x-icon">
</head>
<body>
    <div class="page page-narrow">
        <?php if ($loggedIn): ?>
        <div class="page-header">
            <div>
                <h1 class="page-title">Your Available Quizzes</h1>
                <p class="page-subtitle">Pick a quiz to view submissions or take.</p>
            </div>
            <div class="actions">
                <a class="btn btn-ghost" href="../index.php">&#8592; Back to dashboard</a>
            </div>
        </div>
        <?php endif; ?>
        
        <div class="quiz-container">
            <?php
            
// Check auth
            
if (!$loggedIn || $loggedIn != 1) {
                echo 
"<div class='alert alert-error'>Access denied. Please log in.</div>";
                echo 
'<div class="actions"><a class="btn" href="../login.php">Log in -></a></div>';
                exit;
            }

            include(
'../dbconnection.php');
            if (!
$dbconn) {
                die(
"Connection failed: Can't connect to database.");
            }
            
            if (!
$_SESSION['is_admin']) {
                
$user_id $_SESSION['user_id'];
                
$sql "SELECT * FROM quizzes WHERE owner_id = :user_id";
                
$stmt $dbconn->prepare($sql);
                
$stmt->bindParam(':user_id'$user_id);
                
$stmt->execute();
                
$rows $stmt->fetchAll(PDO::FETCH_ASSOC);
            } else {
                
$sql "SELECT * FROM quizzes";
                
$stmt $dbconn->prepare($sql);
                
$stmt->execute();
                
$rows $stmt->fetchAll(PDO::FETCH_ASSOC);
            }
            
            
            if (!
$rows) {
                echo 
"<div class='alert alert-warning'>No quizzes found! Return to dashboard to create one.</div>";
            } else {
                
$user_id $_SESSION['user_id'];
                
$sql "SELECT username FROM users WHERE user_id = :user_id";
                
$stmt $dbconn->prepare($sql);
                
$stmt->bindParam(':user_id'$user_id);
                
$stmt->execute();
                
$userResult $stmt->fetch(PDO::FETCH_ASSOC);
                
$username htmlentities($userResult['username']);

                
$output "<table class='table'><caption>Your Quizzes:</caption>";
                
$output .= "<thead><tr><th>Quiz Name</th><th>Owner</th><th>Action</th></tr></thead><tbody>";
                foreach (
$rows as $res) {
                    
// html entities för att förhindra bilder, länkas osv
                    
$quizName htmlentities($res['quiz_name']);
                    
$quizId   = (int)$res['quiz_id'];
                    
$output .= "<tr>";
                    
$output .= "<td>{$quizName}</td>";
                    
$output .= "<td>{$username}</td>";
                    
$output .= "<td><a class=\"btn btn-secondary\" href=\"takequiz.php?quiz_id={$quizId}\">Take Quiz -></a> <a class=\"btn btn-secondary\" href=\"viewsubmissions.php?quiz_id={$quizId}\">Submissions -></a></td>";
                    
$output .= "</tr>";
                }
                
$output .= "</tbody></table>";
                echo 
$output;
            }

            
$dbconn null;
            
?>
        </div>
    </div>
</body>
</html>