-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcheck_session.php
More file actions
51 lines (43 loc) · 1.44 KB
/
Copy pathcheck_session.php
File metadata and controls
51 lines (43 loc) · 1.44 KB
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
<?php
// Start session if not already started
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
// Import isLoggedIn function from config.php instead of redefining it
require_once __DIR__ . '/config.php';
// Redirect to login page with message
function redirectToLogin($message = '') {
// Determine which login page to redirect to based on role
$login_page = 'login.php';
if (isset($_SESSION['role'])) {
if ($_SESSION['role'] === 'Staff') {
$login_page = 'user_staff.php';
} elseif ($_SESSION['role'] === 'Student') {
$login_page = 'user_student.php';
} elseif ($_SESSION['role'] === 'Admin') {
$login_page = 'user_admin.php';
}
}
// Clear all session variables
$_SESSION = array();
// Destroy the session
session_destroy();
// Redirect with message if provided
if (!empty($message)) {
header("Location: $login_page?error=" . urlencode($message));
} else {
header("Location: $login_page");
}
exit;
}
// For pages that require authentication
function requireLogin($required_role = null) {
if (!isLoggedIn()) {
redirectToLogin('Please login to continue.');
}
// Check if user has required role (if specified)
if ($required_role !== null && $_SESSION['role'] !== $required_role) {
redirectToLogin('You do not have permission to access this page.');
}
}
?>