Webbserverprogrammering 1

Show sourcecode

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

webbserverprogrammering/submissions/projekt-quiz/admin/

admin_login.php
admin_manage_quiz.php
admin_manage_users.php
admin_panel.php
admin_statistics.php
make_admin.php

admin_manage_quiz.php

86 lines UTF-8 Unix (LF)
<?php
session_start
();
require_once 
'../includes/db_connect.php';

// Kontrollera att admin är inloggad
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
    
header("Location: admin_login.php");
    exit();
}

// Radera quiz
if (isset($_POST['delete_quiz'])) {
    
$quiz_id $_POST['quiz_id'];
    
    
$stmt $pdo->prepare("DELETE FROM quizzes WHERE id = :id");
    
$stmt->execute([':id' => $quiz_id]);
    
    
$_SESSION['success'] = "Quiz raderat!";
    
header("Location: admin_manage_quiz.php");
    exit();
}

// Hämta alla quiz
$stmt $pdo->query("
    SELECT q.id, q.title, q.description, q.is_active, 
           COUNT(DISTINCT qs.id) as question_count
    FROM quizzes q
    LEFT JOIN questions qs ON q.id = qs.quiz_id
    GROUP BY q.id
    ORDER BY q.created_at DESC
"
);
$quizzes $stmt->fetchAll(PDO::FETCH_ASSOC);

$page_title 'Hantera Quiz';
require_once 
'../includes/header.php';
?>
    
    <div class="container">
        <div class="admin-section">
            <h1>Hantera Quiz</h1>
            
            <a href="admin_panel.php" class="btn btn-secondary">Tillbaka till Admin Panel</a>
            
            <?php if (isset($_SESSION['success'])): ?>
                <div class="success-message">
                    <?php 
                    
echo htmlspecialchars($_SESSION['success']); 
                    unset(
$_SESSION['success']);
                    
?>
                </div>
            <?php endif; ?>
            
            <table>
                <thead>
                    <tr>
                        <th>Titel</th>
                        <th>Beskrivning</th>
                        <th>Antal frågor</th>
                        <th>Status</th>
                        <th>Åtgärder</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($quizzes as $quiz): ?>
                    <tr>
                        <td><?php echo htmlspecialchars($quiz['title']); ?></td>
                        <td><?php echo htmlspecialchars(substr($quiz['description'], 050)); ?>...</td>
                        <td><?php echo $quiz['question_count']; ?></td>
                        <td><?php echo $quiz['is_active'] ? 'Aktiv' 'Inaktiv'?></td>
                        <td>
                            <form method="POST" style="display:inline;" onsubmit="return confirm('Är du säker på att du vill radera detta quiz?');">
                                <input type="hidden" name="quiz_id" value="<?php echo $quiz['id']; ?>">
                                <button type="submit" name="delete_quiz" class="btn btn-danger">Radera</button>
                            </form>
                        </td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
            
            <a href="../create_quiz.php" class="btn btn-primary">Skapa nytt quiz</a>
        </div>
    </div>
    
<?php require_once '../includes/footer.php'?>