-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathauth_check.php
More file actions
115 lines (102 loc) · 3.68 KB
/
auth_check.php
File metadata and controls
115 lines (102 loc) · 3.68 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
// if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// if (!isset($_SESSION['username'])) {
// header('Location: login.php');
// exit;
// }
// $username = $_POST['username'];
// $password = $_POST['password'];
// // Requête pour vérifier les identifiants
// $query = "SELECT * FROM users WHERE username = ? LIMIT 1";
// $stmt = $conn->prepare($query);
// $stmt->bind_param("s", $username);
// $stmt->execute();
// $result = $stmt->get_result();
// if ($result->num_rows > 0) {
// $row = $result->fetch_assoc();
// Vérifiez le mot de passe
// if (password_verify($password, $row['password'])) {
// if ($row['user_type'] === 'admin')
// {
// $_SESSION['user_id'] = $row['id'];
// $_SESSION['user_type'] = $row['user_type'];
// $_SESSION['is_super_admin'] = $row['is_super_admin'];
// header("Location: dashboard.php");
// exit();
// } else {
// echo "Accès refusé : vous devez être l'administrateur pour vous connecter.";
// }
// } else {
// echo "Mot de passe incorrect. Veuillez réessayer.";
// }
// } else {
// echo "Nom d'utilisateur introuvable. Vérifiez que le professeur est bien enregistré.";
// }
// }
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
// Débogage - Enregistrer les informations dans un fichier
$debug_info = date('Y-m-d H:i:s') . "\n";
$debug_info .= "Session: " . print_r($_SESSION, true) . "\n";
$debug_info .= "Current page: " . $_SERVER['PHP_SELF'] . "\n";
$debug_info .= "------------------------------------------------\n";
file_put_contents('debug_log.txt', $debug_info, FILE_APPEND);
// Pages accessibles sans connexion
$public_pages = [
'/voir_notes.php',
'/notes_par_classe.php',
'/login.php',
'/logout.php',
'/etab.php'
];
// Pages réservées aux administrateurs
$admin_pages = [
'/gestion_notes_matiere.php',
'/gestion_professeurs.php',
'/gestion_etudiants.php'
];
// Pages réservées aux professeurs et administrateurs
$prof_pages = [
'/ajouter_note.php',
'/gestion_notes_matiere.php'
];
// Pages réservées au super admin
$super_admin_pages = [
'/gestion_matieres.php',
'/gestion_admins.php',
'/save_all.php'
];
// Vérifier si la page actuelle est une page publique
$current_page = str_replace('\\', '/', $_SERVER['PHP_SELF']);
$current_page = substr($current_page, strrpos($current_page, '/'));
// Si la page n'est pas publique, vérifier si l'utilisateur est connecté
if (!in_array($current_page, $public_pages)) {
if (!isset($_SESSION['user_id']) || !isset($_SESSION['user_type'])) {
$_SESSION['redirect_url'] = $_SERVER['PHP_SELF'];
header("Location: login.php");
exit();
}
// Vérifier les permissions pour les pages admin
if (in_array($current_page, $admin_pages)) {
if ($_SESSION['user_type'] != 'admin' && !$_SESSION['is_super_admin']) {
header("Location: index.php");
exit();
}
}
// Vérifier les permissions pour les pages professeur
if (in_array($current_page, $prof_pages)) {
if ($_SESSION['user_type'] != 'admin' && $_SESSION['user_type'] != 'professeur' && !$_SESSION['is_super_admin']) {
header("Location: index.php");
exit();
}
}
// Vérifier les permissions pour les pages super admin
if (in_array($current_page, $super_admin_pages)) {
if (!isset($_SESSION['is_super_admin']) || !$_SESSION['is_super_admin']) {
header("Location: index.php");
exit();
}
}
}
?>