Version 3
This commit is contained in:
parent
81ddc485b1
commit
2b636cf864
41
admin/add_course.php
Normal file
41
admin/add_course.php
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once '../db/config.php';
|
||||||
|
|
||||||
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||||
|
$name = $_POST['name'];
|
||||||
|
$description = $_POST['description'];
|
||||||
|
|
||||||
|
$pdo = db();
|
||||||
|
$stmt = $pdo->prepare("INSERT INTO courses (name, description) VALUES (?, ?)");
|
||||||
|
$stmt->execute([$name, $description]);
|
||||||
|
|
||||||
|
header("Location: courses.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once 'partials/header.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="container mt-5">
|
||||||
|
<h1>Add Course</h1>
|
||||||
|
<form method="post">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="name" class="form-label">Course Name</label>
|
||||||
|
<input type="text" class="form-control" id="name" name="name" required>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="description" class="form-label">Description</label>
|
||||||
|
<textarea class="form-control" id="description" name="description" rows="3"></textarea>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-primary">Add Course</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php require_once 'partials/footer.php'; ?>
|
||||||
41
admin/add_student.php
Normal file
41
admin/add_student.php
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once '../db/config.php';
|
||||||
|
|
||||||
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||||
|
$username = $_POST['username'];
|
||||||
|
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
|
||||||
|
|
||||||
|
$pdo = db();
|
||||||
|
$stmt = $pdo->prepare("INSERT INTO students (username, password) VALUES (?, ?)");
|
||||||
|
$stmt->execute([$username, $password]);
|
||||||
|
|
||||||
|
header("Location: students.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once 'partials/header.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="container mt-5">
|
||||||
|
<h1>Add Student</h1>
|
||||||
|
<form method="post">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="username" class="form-label">Username</label>
|
||||||
|
<input type="text" class="form-control" id="username" name="username" required>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="password" class="form-label">Password</label>
|
||||||
|
<input type="password" class="form-control" id="password" name="password" required>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-primary">Add Student</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php require_once 'partials/footer.php'; ?>
|
||||||
46
admin/courses.php
Normal file
46
admin/courses.php
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once '../db/config.php';
|
||||||
|
require_once 'partials/header.php';
|
||||||
|
|
||||||
|
$pdo = db();
|
||||||
|
$stmt = $pdo->query("SELECT * FROM courses");
|
||||||
|
$courses = $stmt->fetchAll();
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="container mt-5">
|
||||||
|
<h1>Manage Courses</h1>
|
||||||
|
<a href="add_course.php" class="btn btn-primary mb-3">Add Course</a>
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>ID</th>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Description</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php foreach ($courses as $course): ?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo htmlspecialchars($course['id']); ?></td>
|
||||||
|
<td><?php echo htmlspecialchars($course['name']); ?></td>
|
||||||
|
<td><?php echo htmlspecialchars($course['description']); ?></td>
|
||||||
|
<td>
|
||||||
|
<a href="edit_course.php?id=<?php echo $course['id']; ?>" class="btn btn-sm btn-warning">Edit</a>
|
||||||
|
<a href="delete_course.php?id=<?php echo $course['id']; ?>" class="btn btn-sm btn-danger" onclick="return confirm('Are you sure?')">Delete</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php require_once 'partials/footer.php'; ?>
|
||||||
33
admin/delete_course.php
Normal file
33
admin/delete_course.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once '../db/config.php';
|
||||||
|
|
||||||
|
$course_id = $_GET['id'];
|
||||||
|
|
||||||
|
$pdo = db();
|
||||||
|
|
||||||
|
// First, delete related enrollments and grades
|
||||||
|
$stmt = $pdo->prepare("SELECT id FROM enrollments WHERE course_id = ?");
|
||||||
|
$stmt->execute([$course_id]);
|
||||||
|
$enrollments = $stmt->fetchAll();
|
||||||
|
|
||||||
|
foreach ($enrollments as $enrollment) {
|
||||||
|
$stmt = $pdo->prepare("DELETE FROM grades WHERE enrollment_id = ?");
|
||||||
|
$stmt->execute([$enrollment['id']]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$stmt = $pdo->prepare("DELETE FROM enrollments WHERE course_id = ?");
|
||||||
|
$stmt->execute([$course_id]);
|
||||||
|
|
||||||
|
// Now, delete the course
|
||||||
|
$stmt = $pdo->prepare("DELETE FROM courses WHERE id = ?");
|
||||||
|
$stmt->execute([$course_id]);
|
||||||
|
|
||||||
|
header("Location: courses.php");
|
||||||
|
exit;
|
||||||
33
admin/delete_student.php
Normal file
33
admin/delete_student.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once '../db/config.php';
|
||||||
|
|
||||||
|
$student_id = $_GET['id'];
|
||||||
|
|
||||||
|
$pdo = db();
|
||||||
|
|
||||||
|
// First, delete related enrollments and grades
|
||||||
|
$stmt = $pdo->prepare("SELECT id FROM enrollments WHERE student_id = ?");
|
||||||
|
$stmt->execute([$student_id]);
|
||||||
|
$enrollments = $stmt->fetchAll();
|
||||||
|
|
||||||
|
foreach ($enrollments as $enrollment) {
|
||||||
|
$stmt = $pdo->prepare("DELETE FROM grades WHERE enrollment_id = ?");
|
||||||
|
$stmt->execute([$enrollment['id']]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$stmt = $pdo->prepare("DELETE FROM enrollments WHERE student_id = ?");
|
||||||
|
$stmt->execute([$student_id]);
|
||||||
|
|
||||||
|
// Now, delete the student
|
||||||
|
$stmt = $pdo->prepare("DELETE FROM students WHERE id = ?");
|
||||||
|
$stmt->execute([$student_id]);
|
||||||
|
|
||||||
|
header("Location: students.php");
|
||||||
|
exit;
|
||||||
47
admin/edit_course.php
Normal file
47
admin/edit_course.php
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once '../db/config.php';
|
||||||
|
|
||||||
|
$course_id = $_GET['id'];
|
||||||
|
$pdo = db();
|
||||||
|
|
||||||
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||||
|
$name = $_POST['name'];
|
||||||
|
$description = $_POST['description'];
|
||||||
|
|
||||||
|
$stmt = $pdo->prepare("UPDATE courses SET name = ?, description = ? WHERE id = ?");
|
||||||
|
$stmt->execute([$name, $description, $course_id]);
|
||||||
|
|
||||||
|
header("Location: courses.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$stmt = $pdo->prepare("SELECT * FROM courses WHERE id = ?");
|
||||||
|
$stmt->execute([$course_id]);
|
||||||
|
$course = $stmt->fetch();
|
||||||
|
|
||||||
|
require_once 'partials/header.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="container mt-5">
|
||||||
|
<h1>Edit Course</h1>
|
||||||
|
<form method="post">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="name" class="form-label">Course Name</label>
|
||||||
|
<input type="text" class="form-control" id="name" name="name" value="<?php echo htmlspecialchars($course['name']); ?>" required>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="description" class="form-label">Description</label>
|
||||||
|
<textarea class="form-control" id="description" name="description" rows="3"><?php echo htmlspecialchars($course['description']); ?></textarea>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-primary">Update Course</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php require_once 'partials/footer.php'; ?>
|
||||||
58
admin/edit_student.php
Normal file
58
admin/edit_student.php
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once '../db/config.php';
|
||||||
|
|
||||||
|
$student_id = $_GET['id'];
|
||||||
|
$pdo = db();
|
||||||
|
|
||||||
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||||
|
$username = $_POST['username'];
|
||||||
|
|
||||||
|
$sql = "UPDATE students SET username = ?";
|
||||||
|
$params = [$username];
|
||||||
|
|
||||||
|
if (!empty($_POST['password'])) {
|
||||||
|
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
|
||||||
|
$sql .= ", password = ?";
|
||||||
|
$params[] = $password;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql .= " WHERE id = ?";
|
||||||
|
$params[] = $student_id;
|
||||||
|
|
||||||
|
$stmt = $pdo->prepare($sql);
|
||||||
|
$stmt->execute($params);
|
||||||
|
|
||||||
|
header("Location: students.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$stmt = $pdo->prepare("SELECT * FROM students WHERE id = ?");
|
||||||
|
$stmt->execute([$student_id]);
|
||||||
|
$student = $stmt->fetch();
|
||||||
|
|
||||||
|
require_once 'partials/header.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="container mt-5">
|
||||||
|
<h1>Edit Student</h1>
|
||||||
|
<form method="post">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="username" class="form-label">Username</label>
|
||||||
|
<input type="text" class="form-control" id="username" name="username" value="<?php echo htmlspecialchars($student['username']); ?>" required>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="password" class="form-label">New Password (leave blank to keep current password)</label>
|
||||||
|
<input type="password" class="form-control" id="password" name="password">
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-primary">Update Student</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php require_once 'partials/footer.php'; ?>
|
||||||
106
admin/enrollments.php
Normal file
106
admin/enrollments.php
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once '../db/config.php';
|
||||||
|
|
||||||
|
$pdo = db();
|
||||||
|
|
||||||
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||||
|
$student_id = $_POST['student_id'];
|
||||||
|
$course_id = $_POST['course_id'];
|
||||||
|
|
||||||
|
// Check if enrollment already exists
|
||||||
|
$stmt = $pdo->prepare("SELECT id FROM enrollments WHERE student_id = ? AND course_id = ?");
|
||||||
|
$stmt->execute([$student_id, $course_id]);
|
||||||
|
if (!$stmt->fetch()) {
|
||||||
|
$stmt = $pdo->prepare("INSERT INTO enrollments (student_id, course_id) VALUES (?, ?)");
|
||||||
|
$stmt->execute([$student_id, $course_id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
header("Location: enrollments.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fetch all students and courses for dropdowns
|
||||||
|
$students_stmt = $pdo->query("SELECT * FROM students");
|
||||||
|
$students = $students_stmt->fetchAll();
|
||||||
|
|
||||||
|
$courses_stmt = $pdo->query("SELECT * FROM courses");
|
||||||
|
$courses = $courses_stmt->fetchAll();
|
||||||
|
|
||||||
|
// Fetch all enrollments with student and course names
|
||||||
|
$enrollments_stmt = $pdo->query("
|
||||||
|
SELECT e.id, s.username, c.name as course_name
|
||||||
|
FROM enrollments e
|
||||||
|
JOIN students s ON e.student_id = s.id
|
||||||
|
JOIN courses c ON e.course_id = c.id
|
||||||
|
ORDER BY s.username, c.name
|
||||||
|
");
|
||||||
|
$enrollments = $enrollments_stmt->fetchAll();
|
||||||
|
|
||||||
|
require_once 'partials/header.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="container mt-5">
|
||||||
|
<h1>Manage Enrollments</h1>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-header">Enroll Student in Course</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<form method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-5">
|
||||||
|
<label for="student_id" class="form-label">Student</label>
|
||||||
|
<select class="form-control" id="student_id" name="student_id" required>
|
||||||
|
<option value="">Select Student</option>
|
||||||
|
<?php foreach ($students as $student): ?>
|
||||||
|
<option value="<?php echo $student['id']; ?>"><?php echo htmlspecialchars($student['username']); ?></option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-5">
|
||||||
|
<label for="course_id" class="form-label">Course</label>
|
||||||
|
<select class="form-control" id="course_id" name="course_id" required>
|
||||||
|
<option value="">Select Course</option>
|
||||||
|
<?php foreach ($courses as $course): ?>
|
||||||
|
<option value="<?php echo $course['id']; ?>"><?php echo htmlspecialchars($course['name']); ?></option>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2 d-flex align-items-end">
|
||||||
|
<button type="submit" class="btn btn-primary w-100">Enroll</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Current Enrollments</h2>
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Student</th>
|
||||||
|
<th>Course</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php foreach ($enrollments as $enrollment): ?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo htmlspecialchars($enrollment['username']); ?></td>
|
||||||
|
<td><?php echo htmlspecialchars($enrollment['course_name']); ?></td>
|
||||||
|
<td>
|
||||||
|
<a href="unenroll.php?id=<?php echo $enrollment['id']; ?>" class="btn btn-sm btn-danger" onclick="return confirm('Are you sure?')">Unenroll</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php require_once 'partials/footer.php'; ?>
|
||||||
84
admin/grades.php
Normal file
84
admin/grades.php
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once '../db/config.php';
|
||||||
|
|
||||||
|
$pdo = db();
|
||||||
|
|
||||||
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||||
|
$enrollment_id = $_POST['enrollment_id'];
|
||||||
|
$grade = $_POST['grade'];
|
||||||
|
|
||||||
|
// Check if a grade already exists
|
||||||
|
$stmt = $pdo->prepare("SELECT id FROM grades WHERE enrollment_id = ?");
|
||||||
|
$stmt->execute([$enrollment_id]);
|
||||||
|
$existing_grade = $stmt->fetch();
|
||||||
|
|
||||||
|
if ($existing_grade) {
|
||||||
|
// Update existing grade
|
||||||
|
$stmt = $pdo->prepare("UPDATE grades SET grade = ? WHERE id = ?");
|
||||||
|
$stmt->execute([$grade, $existing_grade['id']]);
|
||||||
|
} else {
|
||||||
|
// Insert new grade
|
||||||
|
$stmt = $pdo->prepare("INSERT INTO grades (enrollment_id, grade) VALUES (?, ?)");
|
||||||
|
$stmt->execute([$enrollment_id, $grade]);
|
||||||
|
}
|
||||||
|
|
||||||
|
header("Location: grades.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Fetch all enrollments with student, course, and grade information
|
||||||
|
$enrollments_stmt = $pdo->query("
|
||||||
|
SELECT e.id, s.username, c.name as course_name, g.grade
|
||||||
|
FROM enrollments e
|
||||||
|
JOIN students s ON e.student_id = s.id
|
||||||
|
JOIN courses c ON e.course_id = c.id
|
||||||
|
LEFT JOIN grades g ON e.id = g.enrollment_id
|
||||||
|
ORDER BY s.username, c.name
|
||||||
|
");
|
||||||
|
$enrollments = $enrollments_stmt->fetchAll();
|
||||||
|
|
||||||
|
require_once 'partials/header.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="container mt-5">
|
||||||
|
<h1>Manage Grades</h1>
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Student</th>
|
||||||
|
<th>Course</th>
|
||||||
|
<th>Grade</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php foreach ($enrollments as $enrollment): ?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo htmlspecialchars($enrollment['username']); ?></td>
|
||||||
|
<td><?php echo htmlspecialchars($enrollment['course_name']); ?></td>
|
||||||
|
<td>
|
||||||
|
<form method="post" class="row g-2">
|
||||||
|
<input type="hidden" name="enrollment_id" value="<?php echo $enrollment['id']; ?>">
|
||||||
|
<div class="col-auto">
|
||||||
|
<input type="text" class="form-control" name="grade" value="<?php echo htmlspecialchars($enrollment['grade'] ?? ''); ?>" placeholder="Enter grade">
|
||||||
|
</div>
|
||||||
|
<div class="col-auto">
|
||||||
|
<button type="submit" class="btn btn-primary">Save</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php require_once 'partials/footer.php'; ?>
|
||||||
18
admin/index.php
Normal file
18
admin/index.php
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once 'partials/header.php';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="container mt-5">
|
||||||
|
<h1>Admin Dashboard</h1>
|
||||||
|
<p>Welcome, <?php echo htmlspecialchars($_SESSION['admin_username']); ?>!</p>
|
||||||
|
<p>This is the admin dashboard. From here you can manage students, courses, enrollments, and grades.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php require_once 'partials/footer.php'; ?>
|
||||||
64
admin/login.php
Normal file
64
admin/login.php
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
require_once '../db/config.php';
|
||||||
|
|
||||||
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||||
|
$username = $_POST['username'];
|
||||||
|
$password = $_POST['password'];
|
||||||
|
|
||||||
|
$pdo = db();
|
||||||
|
$stmt = $pdo->prepare("SELECT * FROM admins WHERE username = ?");
|
||||||
|
$stmt->execute([$username]);
|
||||||
|
$admin = $stmt->fetch();
|
||||||
|
|
||||||
|
if ($admin && password_verify($password, $admin['password'])) {
|
||||||
|
$_SESSION['admin_logged_in'] = true;
|
||||||
|
$_SESSION['admin_id'] = $admin['id'];
|
||||||
|
$_SESSION['admin_username'] = $admin['username'];
|
||||||
|
header("Location: index.php");
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
$error = "Invalid credentials";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Admin Login</title>
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container mt-5">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
Admin Login
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<?php if (isset($error)): ?>
|
||||||
|
<div class="alert alert-danger"><?php echo $error; ?></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
<form method="post">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="username" class="form-label">Username</label>
|
||||||
|
<input type="text" class="form-control" id="username" name="username" required>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="password" class="form-label">Password</label>
|
||||||
|
<input type="password" class="form-control" id="password" name="password" required>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-primary">Login</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
6
admin/logout.php
Normal file
6
admin/logout.php
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
session_unset();
|
||||||
|
session_destroy();
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
3
admin/partials/footer.php
Normal file
3
admin/partials/footer.php
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
42
admin/partials/header.php
Normal file
42
admin/partials/header.php
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Admin Panel</title>
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<a class="navbar-brand" href="index.php">Admin Panel</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="index.php">Dashboard</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="students.php">Students</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="courses.php">Courses</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="enrollments.php">Enrollments</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="grades.php">Grades</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="logout.php">Logout</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
44
admin/students.php
Normal file
44
admin/students.php
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once '../db/config.php';
|
||||||
|
require_once 'partials/header.php';
|
||||||
|
|
||||||
|
$pdo = db();
|
||||||
|
$stmt = $pdo->query("SELECT * FROM students");
|
||||||
|
$students = $stmt->fetchAll();
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="container mt-5">
|
||||||
|
<h1>Manage Students</h1>
|
||||||
|
<a href="add_student.php" class="btn btn-primary mb-3">Add Student</a>
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>ID</th>
|
||||||
|
<th>Username</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php foreach ($students as $student): ?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo htmlspecialchars($student['id']); ?></td>
|
||||||
|
<td><?php echo htmlspecialchars($student['username']); ?></td>
|
||||||
|
<td>
|
||||||
|
<a href="edit_student.php?id=<?php echo $student['id']; ?>" class="btn btn-sm btn-warning">Edit</a>
|
||||||
|
<a href="delete_student.php?id=<?php echo $student['id']; ?>" class="btn btn-sm btn-danger" onclick="return confirm('Are you sure?')">Delete</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php require_once 'partials/footer.php'; ?>
|
||||||
24
admin/unenroll.php
Normal file
24
admin/unenroll.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
|
||||||
|
header("Location: login.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_once '../db/config.php';
|
||||||
|
|
||||||
|
$enrollment_id = $_GET['id'];
|
||||||
|
|
||||||
|
$pdo = db();
|
||||||
|
|
||||||
|
// First, delete any related grades
|
||||||
|
$stmt = $pdo->prepare("DELETE FROM grades WHERE enrollment_id = ?");
|
||||||
|
$stmt->execute([$enrollment_id]);
|
||||||
|
|
||||||
|
// Now, delete the enrollment
|
||||||
|
$stmt = $pdo->prepare("DELETE FROM enrollments WHERE id = ?");
|
||||||
|
$stmt->execute([$enrollment_id]);
|
||||||
|
|
||||||
|
header("Location: enrollments.php");
|
||||||
|
exit;
|
||||||
@ -1,11 +1,32 @@
|
|||||||
<?php
|
<?php
|
||||||
session_start();
|
session_start();
|
||||||
|
require_once 'db/config.php';
|
||||||
|
|
||||||
// If user is not logged in, redirect to login page
|
// If user is not logged in, redirect to login page
|
||||||
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
|
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
|
||||||
header('Location: login.php');
|
header('Location: login.php');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fetch student's courses
|
||||||
|
$courses = [];
|
||||||
|
try {
|
||||||
|
$pdo = db();
|
||||||
|
$stmt = $pdo->prepare("
|
||||||
|
SELECT c.name, c.description, g.grade
|
||||||
|
FROM courses c
|
||||||
|
JOIN enrollments e ON c.id = e.course_id
|
||||||
|
JOIN students s ON e.student_id = s.id
|
||||||
|
LEFT JOIN grades g ON e.id = g.enrollment_id
|
||||||
|
WHERE s.username = ?
|
||||||
|
");
|
||||||
|
$stmt->execute([$_SESSION['username']]);
|
||||||
|
$courses = $stmt->fetchAll();
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
// Handle database error
|
||||||
|
error_log($e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
@ -52,8 +73,23 @@ if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
|
|||||||
<h4>Enrolled Courses</h4>
|
<h4>Enrolled Courses</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<p>Course information will be displayed here soon.</p>
|
<?php if (!empty($courses)): ?>
|
||||||
<!-- Example course list can be added later -->
|
<ul class="list-group list-group-flush">
|
||||||
|
<?php foreach ($courses as $course): ?>
|
||||||
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||||
|
<div>
|
||||||
|
<h5><?php echo htmlspecialchars($course['name']); ?></h5>
|
||||||
|
<p><?php echo htmlspecialchars($course['description']); ?></p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<strong>Grade:</strong> <?php echo htmlspecialchars($course['grade'] ?? 'Not graded'); ?>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</ul>
|
||||||
|
<?php else: ?>
|
||||||
|
<p>You are not enrolled in any courses yet.</p>
|
||||||
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -63,7 +99,8 @@ if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
|
|||||||
<h4>Profile</h4>
|
<h4>Profile</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<p>Student profile details will appear here.</p>
|
<p>View and edit your profile information.</p>
|
||||||
|
<a href="profile.php" class="btn btn-primary">Go to Profile</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
109
db/setup_database.php
Normal file
109
db/setup_database.php
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
<?php
|
||||||
|
require_once __DIR__ . '/config.php';
|
||||||
|
|
||||||
|
try {
|
||||||
|
$pdo = db();
|
||||||
|
|
||||||
|
// Create students table
|
||||||
|
$pdo->exec("
|
||||||
|
CREATE TABLE IF NOT EXISTS students (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
username VARCHAR(255) NOT NULL UNIQUE,
|
||||||
|
password VARCHAR(255) NOT NULL
|
||||||
|
)
|
||||||
|
");
|
||||||
|
|
||||||
|
// Create courses table
|
||||||
|
$pdo->exec("
|
||||||
|
CREATE TABLE IF NOT EXISTS courses (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
description TEXT
|
||||||
|
)
|
||||||
|
");
|
||||||
|
|
||||||
|
// Create enrollments table
|
||||||
|
$pdo->exec("
|
||||||
|
CREATE TABLE IF NOT EXISTS enrollments (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
student_id INT NOT NULL,
|
||||||
|
course_id INT NOT NULL,
|
||||||
|
FOREIGN KEY (student_id) REFERENCES students(id),
|
||||||
|
FOREIGN KEY (course_id) REFERENCES courses(id)
|
||||||
|
)
|
||||||
|
");
|
||||||
|
|
||||||
|
// Add a student
|
||||||
|
$username = 'student';
|
||||||
|
$password = password_hash('password123', PASSWORD_DEFAULT);
|
||||||
|
|
||||||
|
$stmt = $pdo->prepare("SELECT id FROM students WHERE username = ?");
|
||||||
|
$stmt->execute([$username]);
|
||||||
|
$student = $stmt->fetch();
|
||||||
|
|
||||||
|
if (!$student) {
|
||||||
|
$stmt = $pdo->prepare("INSERT INTO students (username, password) VALUES (?, ?)");
|
||||||
|
$stmt->execute([$username, $password]);
|
||||||
|
$student_id = $pdo->lastInsertId();
|
||||||
|
} else {
|
||||||
|
$student_id = $student['id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Add courses
|
||||||
|
$courses = [
|
||||||
|
['Introduction to PHP', 'Learn the basics of PHP programming.'],
|
||||||
|
['Database Management with MySQL', 'Master the art of database management.'],
|
||||||
|
['Web Design Fundamentals', 'Understand the principles of modern web design.'],
|
||||||
|
];
|
||||||
|
|
||||||
|
$stmt = $pdo->prepare("INSERT INTO courses (name, description) VALUES (?, ?)");
|
||||||
|
foreach ($courses as $course) {
|
||||||
|
// Check if course exists
|
||||||
|
$checkStmt = $pdo->prepare("SELECT id FROM courses WHERE name = ?");
|
||||||
|
$checkStmt->execute([$course[0]]);
|
||||||
|
if (!$checkStmt->fetch()) {
|
||||||
|
$stmt->execute($course);
|
||||||
|
$course_id = $pdo->lastInsertId();
|
||||||
|
|
||||||
|
// Enroll student in the course
|
||||||
|
$enrollStmt = $pdo->prepare("INSERT INTO enrollments (student_id, course_id) VALUES (?, ?)");
|
||||||
|
$enrollStmt->execute([$student_id, $course_id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create admins table
|
||||||
|
$pdo->exec("
|
||||||
|
CREATE TABLE IF NOT EXISTS admins (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
username VARCHAR(255) NOT NULL UNIQUE,
|
||||||
|
password VARCHAR(255) NOT NULL
|
||||||
|
)
|
||||||
|
");
|
||||||
|
|
||||||
|
// Add an admin
|
||||||
|
$admin_username = 'admin';
|
||||||
|
$admin_password = password_hash('password123', PASSWORD_DEFAULT);
|
||||||
|
|
||||||
|
$stmt = $pdo->prepare("SELECT id FROM admins WHERE username = ?");
|
||||||
|
$stmt->execute([$admin_username]);
|
||||||
|
if (!$stmt->fetch()) {
|
||||||
|
$stmt = $pdo->prepare("INSERT INTO admins (username, password) VALUES (?, ?)");
|
||||||
|
$stmt->execute([$admin_username, $admin_password]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create grades table
|
||||||
|
$pdo->exec("
|
||||||
|
CREATE TABLE IF NOT EXISTS grades (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
enrollment_id INT NOT NULL,
|
||||||
|
grade VARCHAR(255),
|
||||||
|
FOREIGN KEY (enrollment_id) REFERENCES enrollments(id)
|
||||||
|
)
|
||||||
|
");
|
||||||
|
|
||||||
|
echo "Database setup completed successfully.\n";
|
||||||
|
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
die("Database error: " . $e->getMessage());
|
||||||
|
}
|
||||||
@ -37,6 +37,7 @@
|
|||||||
<li class="nav-item"><a class="nav-link" href="#about">About</a></li>
|
<li class="nav-item"><a class="nav-link" href="#about">About</a></li>
|
||||||
<li class="nav-item"><a class="nav-link" href="#contact">Contact</a></li>
|
<li class="nav-item"><a class="nav-link" href="#contact">Contact</a></li>
|
||||||
<li class="nav-item"><a class="btn btn-primary ms-lg-2" href="login.php">Student Login</a></li>
|
<li class="nav-item"><a class="btn btn-primary ms-lg-2" href="login.php">Student Login</a></li>
|
||||||
|
<li class="nav-item"><a class="btn btn-secondary ms-lg-2" href="admin/login.php">Admin Login</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
24
login.php
24
login.php
@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
session_start();
|
session_start();
|
||||||
|
require_once 'db/config.php';
|
||||||
|
|
||||||
// If user is already logged in, redirect to dashboard
|
// If user is already logged in, redirect to dashboard
|
||||||
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||||
@ -7,24 +8,35 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hardcoded credentials
|
|
||||||
define('USERNAME', 'student');
|
|
||||||
define('PASSWORD', 'password123');
|
|
||||||
|
|
||||||
$error = '';
|
$error = '';
|
||||||
|
|
||||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
$username = $_POST['username'] ?? '';
|
$username = $_POST['username'] ?? '';
|
||||||
$password = $_POST['password'] ?? '';
|
$password = $_POST['password'] ?? '';
|
||||||
|
|
||||||
if ($username === USERNAME && $password === PASSWORD) {
|
if (empty($username) || empty($password)) {
|
||||||
|
$error = 'Please enter both username and password.';
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
$pdo = db();
|
||||||
|
$stmt = $pdo->prepare("SELECT * FROM students WHERE username = ?");
|
||||||
|
$stmt->execute([$username]);
|
||||||
|
$student = $stmt->fetch();
|
||||||
|
|
||||||
|
if ($student && password_verify($password, $student['password'])) {
|
||||||
$_SESSION['loggedin'] = true;
|
$_SESSION['loggedin'] = true;
|
||||||
$_SESSION['username'] = $username;
|
$_SESSION['username'] = $student['username'];
|
||||||
|
$_SESSION['student_id'] = $student['id'];
|
||||||
header('Location: dashboard.php');
|
header('Location: dashboard.php');
|
||||||
exit;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
$error = 'Invalid username or password.';
|
$error = 'Invalid username or password.';
|
||||||
}
|
}
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
$error = 'Database error. Please try again later.';
|
||||||
|
error_log($e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|||||||
69
profile.php
Normal file
69
profile.php
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
require_once 'db/config.php';
|
||||||
|
|
||||||
|
// If user is not logged in, redirect to login page
|
||||||
|
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
|
||||||
|
header('Location: login.php');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>My Profile - University Management</title>
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="assets/css/custom.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href="dashboard.php">University Portal</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="dashboard.php">Dashboard</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<span class="navbar-text me-3">
|
||||||
|
Welcome, <?php echo htmlspecialchars($_SESSION['username']); ?>!
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="btn btn-outline-primary" href="logout.php">Logout</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="container mt-5">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<h1 class="display-5">My Profile</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mt-4">
|
||||||
|
<div class="col-md-8">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h4>Profile Information</h4>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<p><strong>Username:</strong> <?php echo htmlspecialchars($_SESSION['username']); ?></p>
|
||||||
|
<!-- More profile information can be added here in the future -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Loading…
x
Reference in New Issue
Block a user