Bonjour, petit problème pour l'affichage des liens vers les pages autorisés pour tel ou tel utilisateur. (Administrateur, Editeur, etc.).
Le var_dump($menu_items) => C:\wamp64\www\projet-images-en-poo-et-pdo\process\process-display-menu.php:9 : booléen faux
Une petite aide serais sympa, voici mon code :
class/Users.php
process/process-display-menu.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 class Users { function displayMenu($user_role_id) { $mysqli = new mysqli('localhost', 'root', '', 'projet_image'); $mysqli->set_charset("utf8"); if($mysqli->connect_errno) { printf("Echec de la connexion: %s\n", $mysqli->connect_error); exit(); } $sql = 'SELECT A.name, A.slug FROM user_action AS A INNER JOIN user_permission AS P ON(A.actionID = P.actionID AND P.roleID < "' . $user_role_id . '")'; $result = $mysqli->query($sql); if(!$result) { echo 'Une erreur est survenue lors de la récupération des données dans la base. Message d\'erreur : ' . $mysqli->error; return false; } else { while($row = $result->fetch_array()) { $menu_data[] = $row; } if(isset($menu_data)) { return $menu_data; } else { return false; } } $mysqli->close(); } function checkUserPermission($user_role_id, $action_slug) { $mysqli = new mysqli('localhost', 'root', '', 'projet_image'); $mysqli->set_charset("utf8"); if($mysqli->connect_errno) { printf("Echec de la connexion: %s\n", $mysqli->connect_error); exit(); } $sql = 'SELECT P.actionID, P.roleID FROM user_permission AS P INNER JOIN user_action AS A ON(A.slug = "' . $action_slug . '" AND P.actionID = A.actionID)'; $result = $mysqli->query($sql); if(!$result) { echo 'Une erreur est survenue lors de la récupération des données dans la base. Message d\'erreur : ' . $mysqli->error; return false; } else { while($row = $result->fetch_array()) { if($row['P.roleID'] > $user_role_id) { return false; } else { return true; } } } $mysqli->close(); } }
process/process-user-permission.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 $roleID = isset($_SESSION['r.roleID']) ? $_SESSION['r.roleID'] : NULL; $user = new Users(); $menu_items = $user->displayMenu($roleID); var_dump($menu_items); $menu_html = ''; if(!empty($menu_items)) { foreach($menu_items as $menu_item) { $name = $menu_item['name']; $slug = $menu_item['slug']; $menu_html .= '<li><a href="' . $slug . '.php">' . $name . '</a></li>' . "\n"; } }
admin/menu.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 require('../class/Users.php'); $action_slug = substr($filename, 0, 4); $level = isset($_SESSION['level']) ? $_SESSION['level'] : NULL; $user = new Users(); $userPermission = $user->checkUserPermission($action_slug, $level); if($userPermission === false) { echo 'Erreur. Cette page n\'existe pas.'; exit; }
admin/index.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php require('../process/process-display-menu.php'); ?> <ul class="menu"> <?php echo $menu_html; ?> <li><a href="../index.php">Site web</a></li> <li><a href="logout.php">Déconnexion</a></li> </ul>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 require('../include/inc-config.php'); $filename = basename( __FILE__ ); require('../process/process-user-permission.php'); require('menu.php');
Partager