Permissions et rôles dans un espace Admin
Fermé
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
-
29 mars 2022 à 17:16
jordane45 Messages postés 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025 - 1 avril 2022 à 18:52
jordane45 Messages postés 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025 - 1 avril 2022 à 18:52
A voir également:
- Permissions et rôles dans un espace Admin
- Espace insécable - Guide
- Espace de stockage gmail plein - Guide
- Livebox admin - Guide
- Espace stockage google - Guide
- Easywifi.config admin ✓ - Forum Réseau
15 réponses
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
29 mars 2022 à 17:57
29 mars 2022 à 17:57
Bonjour,
Visiblement il y a un souci actuellement sur l'affichage des images...
Ne pourrais tu pas nous copier/coller le message d'erreur directement dans la discussion ?
Visiblement il y a un souci actuellement sur l'affichage des images...
Ne pourrais tu pas nous copier/coller le message d'erreur directement dans la discussion ?
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
1
29 mars 2022 à 18:19
29 mars 2022 à 18:19
Remarque : Index indéfini : niveau dans C:\wamp64\www\projet-images-en-poo-et-pdo\process\process-user-permission.php à la ligne 7
Remarque : Essayer d'accéder à l'offset du tableau sur une valeur de type bool dans C:\wamp64\www\projet-images-en-poo-et-pdo\class\userManager.php à la ligne 301
Remarque : Index indéfini : niveau dans C:\wamp64\www\projet-images-en-poo-et-pdo\process\process-display-menu.php à la ligne 5
Une erreur se produit lors de la récupération d'une des données dans la base.
Message d'erreur : SQLSTATE[42000] : Erreur de syntaxe ou violation d'accès : 1064 Erreur de syntaxe près de ')' à la ligne 5
Attention : Argument invalide fourni pour foreach() dans C:\wamp64\www\projet-images-en-poo-et-pdo\process\process-display-menu.php à la ligne 8
Remarque : Essayer d'accéder à l'offset du tableau sur une valeur de type bool dans C:\wamp64\www\projet-images-en-poo-et-pdo\class\userManager.php à la ligne 301
Remarque : Index indéfini : niveau dans C:\wamp64\www\projet-images-en-poo-et-pdo\process\process-display-menu.php à la ligne 5
Une erreur se produit lors de la récupération d'une des données dans la base.
Message d'erreur : SQLSTATE[42000] : Erreur de syntaxe ou violation d'accès : 1064 Erreur de syntaxe près de ')' à la ligne 5
Attention : Argument invalide fourni pour foreach() dans C:\wamp64\www\projet-images-en-poo-et-pdo\process\process-display-menu.php à la ligne 8
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
29 mars 2022 à 19:28
29 mars 2022 à 19:28
Évite de traduire les messages d'erreur donne les nous tels qu'ils sont sinon ça ne correspond pas au code que tu nous a montré..
On doit donc comprendre que niveau... Correspond à ta variable level..
Je t'invite donc à corriger ce premier problème en étudiant le lien ci-dessous
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
On doit donc comprendre que niveau... Correspond à ta variable level..
Je t'invite donc à corriger ce premier problème en étudiant le lien ci-dessous
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
1
30 mars 2022 à 12:00
30 mars 2022 à 12:00
Bonjour, je n'ai plus que ces messages => Notice: Trying to access array offset on value of type bool in C:\wamp64\www\projet-images-en-poo-et-pdo\class\userManager.php on line 301
Une erreur est survenue lors de la récupération d'une des données dans la base.
Message d'erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ')' à la ligne 5
Warning: Invalid argument supplied for foreach() in C:\wamp64\www\projet-images-en-poo-et-pdo\process\process-display-menu.php on line 10
Une erreur est survenue lors de la récupération d'une des données dans la base.
Message d'erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ')' à la ligne 5
Warning: Invalid argument supplied for foreach() in C:\wamp64\www\projet-images-en-poo-et-pdo\process\process-display-menu.php on line 10
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
30 mars 2022 à 12:47
30 mars 2022 à 12:47
Bonjour,
Le deuxième message indique que tu as une erreur de syntaxe sql dans ta requête, il faudrait afficher cette requête pour vérifier qu'elle est correcte.
A ce sujet, tu utilises une requête préparée mais sans paramètre, tu concatènes directement la variable $action_slug dans la requête sql, ce qui n'est pas recommandée car tu risques d'avoir des erreurs sql et il y a aussi un risque d'avoir des injections sql. Le mieux serait d'utiliser correctement un paramètre pour ta requête préparée : https://www.php.net/manual/fr/pdo.prepared-statements.php
Le deuxième message indique que tu as une erreur de syntaxe sql dans ta requête, il faudrait afficher cette requête pour vérifier qu'elle est correcte.
A ce sujet, tu utilises une requête préparée mais sans paramètre, tu concatènes directement la variable $action_slug dans la requête sql, ce qui n'est pas recommandée car tu risques d'avoir des erreurs sql et il y a aussi un risque d'avoir des injections sql. Le mieux serait d'utiliser correctement un paramètre pour ta requête préparée : https://www.php.net/manual/fr/pdo.prepared-statements.php
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
30 mars 2022 à 13:01
30 mars 2022 à 13:01
Bonjour
Tu as un message d'erreur sur ta requête car la variable que tu essayes de lui mettre n'est pas bonne...
Cela est dû à ta première erreur....
Tu ne récupère visiblement toujours pas la variable de la bonne façon...
Mais pour qu'on puisse t'aider, il faudrait nous montrer le code tel que tu l'as modifié...
Tu as un message d'erreur sur ta requête car la variable que tu essayes de lui mettre n'est pas bonne...
Cela est dû à ta première erreur....
Tu ne récupère visiblement toujours pas la variable de la bonne façon...
Mais pour qu'on puisse t'aider, il faudrait nous montrer le code tel que tu l'as modifié...
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
1
30 mars 2022 à 18:33
30 mars 2022 à 18:33
j'ai plus que ceci =>
Notice: Trying to access array offset on value of type bool in C:\wamp64\www\projet-images-en-poo-et-pdo\class\userManager.php on line 308
Code modifié =>
Notice: Trying to access array offset on value of type bool in C:\wamp64\www\projet-images-en-poo-et-pdo\class\userManager.php on line 308
Code modifié =>
public function displayMenu($user_role_id) { try { $sql = 'SELECT a.name, a.slug FROM user_action AS a INNER JOIN user_permission AS p INNER JOIN user_role AS r ON(a.actionID = p.actionID AND p.roleID < r.level)'; $stmnt = $this->db->prepare($sql); $stmnt->execute(array( ':r.level' => $user_role_id )); while($row = $stmnt->fetch(PDO::FETCH_ASSOC)) { $menu_data[] = $row; } if(isset($menu_data)) { return $menu_data; } else { return false; } } catch(PDOException $e) { echo 'Une erreur est survenue lors de la récupération d\'une des données dans la base.<br> Message d\'erreur : ' . $e->getMessage(); } } public function checkUserPermission($user_role_id, $action_slug) { try { $sql = 'SELECT p.roleID, p.actionID FROM user_permission AS p INNER JOIN user_action AS a ON(a.slug = p.actionID AND p.actionID = a.actionID)'; $stmnt = $this->db->prepare($sql); $stmnt->execute(array( ':p.actionID' => $action_slug )); $row = $stmnt->fetch(PDO::FETCH_ASSOC); if($row['p.roleID'] > $user_role_id) { return false; } else { return true; } } catch(PDOException $e) { echo 'Une erreur est survenue lors de la récupération d\'une des données dans la base.<br> Message d\'erreur : ' . $e->getMessage(); } }
$level = isset($_SESSION['level']) ? $_SESSION['level'] : NULL; $manager = new userManager($db); $menu_items = $manager->displayMenu($level); $menu_html = ''; 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"; }
$action_slug = substr($filename, 0, 4); $level = isset($_SESSION['level']) ? $_SESSION['level'] : NULL; $manager = new userManager($db); $userPermission = $manager->checkUserPermission($level, $action_slug); if($userPermission === false) { echo 'Erreur. Cette page n\'existe pas.'; exit; }
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
30 mars 2022 à 23:40
30 mars 2022 à 23:40
Qu'elle est la ligne qui correspond à la 308 du fichier C:\wamp64\www\projet-images-en-poo-et-pdo\class\userManager ?
Es-tu sûr que ta variable contient bien la connexion à la bdd
Et puis.. modifies tes requêtes comme ceci:
Es-tu sûr que ta variable contient bien la connexion à la bdd
Et puis.. modifies tes requêtes comme ceci:
$sql = 'SELECT a.name, a.slug FROM user_action a INNER JOIN user_permission p -- Tu n'as pas de ON pour ta jointure ici ?? -- INNER JOIN user_role r ON a.actionID = p.actionID WHERE p.roleID < :user_role_id'; $stmnt = $this->db->prepare($sql); $stmnt->execute([':user_role_id' => $user_role_id]);
$sql = 'SELECT p.roleID, p.actionID FROM user_permission p INNER JOIN user_action a ON p.actionID = a.actionID WHERE a.slug = :action_slug'; $stmnt = $this->db->prepare($sql); $stmnt->execute([':action_slug'=>$action_slug]);
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
1
31 mars 2022 à 11:55
31 mars 2022 à 11:55
Bonjour, j'ai fait comme tu m'as dit et j'ai toujours l'erreur à ligne 308
if($row['p.roleID'] > $user_role_id)
if($row['p.roleID'] > $user_role_id)
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
31 mars 2022 à 12:00
31 mars 2022 à 12:00
Ce n'est pas
mais juste
$row['p.roleID']
mais juste
$row['roleID']
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
1
31 mars 2022 à 13:12
31 mars 2022 à 13:12
ça ne marche toujours pas
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
31 mars 2022 à 13:20
31 mars 2022 à 13:20
Je le répète
Quand tu dis ça ne marche pas.... Hé bien... ça ne nous aide pas à savoir ce qui bloque. !!
Pour pouvoir te répondre,
Il nous faut
- Le message d'erreur (si il y en a un) tel qu'il est affiché..
- Le code concerné ( COMPLET )
- La description de ce qui ne fonctionne pas
N'hésite pas non plus, dans ton code, à y mettre des var_dump de tes variables pour savoir ce qu'elles contiennent....
Quand tu dis ça ne marche pas.... Hé bien... ça ne nous aide pas à savoir ce qui bloque. !!
Pour pouvoir te répondre,
Il nous faut
- Le message d'erreur (si il y en a un) tel qu'il est affiché..
- Le code concerné ( COMPLET )
- La description de ce qui ne fonctionne pas
N'hésite pas non plus, dans ton code, à y mettre des var_dump de tes variables pour savoir ce qu'elles contiennent....
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
1
31 mars 2022 à 13:54
31 mars 2022 à 13:54
J'ai de nouveau modifié mon code et je n'ai plus de messages d'erreurs, par contre çà m'affiche => Erreur. Cette page n'existe pas.
Voici mon code =>
admin/index.php
Voici mon code =>
public function displayMenu($user_role_id) { try { $sql = 'SELECT a.name, a.slug FROM user_action AS a INNER JOIN user_permission AS p ON a.actionID = p.actionID WHERE p.roleID < :user_role_id'; $stmnt = $this->db->prepare($sql); $stmnt->execute(array( ':user_role_id' => $user_role_id )); while($row = $stmnt->fetch(PDO::FETCH_ASSOC)) { $menu_data[] = $row; } if(isset($menu_data)) { return $menu_data; } else { return false; } } catch(PDOException $e) { echo 'Une erreur est survenue lors de la récupération d\'une des données dans la base.<br> Message d\'erreur : ' . $e->getMessage(); } } public function checkUserPermission($user_role_id, $action_slug) { try { $sql = 'SELECT p.roleID, p.actionID FROM user_permission AS p INNER JOIN user_action AS a ON p.actionID = a.actionID INNER JOIN user_role AS r ON p.roleID > :user_role_id WHERE a.slug = :action_slug'; $stmnt = $this->db->prepare($sql); $stmnt->execute(array( ':user_role_id' => $user_role_id, ':action_slug' => $action_slug )); if($stmnt->fetch(PDO::FETCH_ASSOC)) { return true; } else { return false; } } catch(PDOException $e) { echo 'Une erreur est survenue lors de la récupération d\'une des données dans la base.<br> Message d\'erreur : ' . $e->getMessage(); } }
$level = isset($_SESSION['level']) ? $_SESSION['level'] : NULL; $manager = new userManager($db); $menu_items = $manager->displayMenu($level); $menu_html = ''; 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"; }
$action_slug = substr($filename, 0, 4); $level = isset($_SESSION['level']) ? $_SESSION['level'] : NULL; $manager = new userManager($db); $userPermission = $manager->checkUserPermission($level, $action_slug); if($userPermission === false) { echo 'Erreur. Cette page n\'existe pas.'; exit; }
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>
admin/index.php
require('../include/inc-connexion.php'); require('../class/userManager.php'); $filename = basename( __FILE__ ); require('../process/process-user-permission.php'); require('menu.php');
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
31 mars 2022 à 14:04
31 mars 2022 à 14:04
Ce qui indique donc que tu entres dans le IF
et par conséquent, que ta variable $userPermission ne contient rien..
ce qui semble logique quand on regarde ta requête
L'as tu testé ??? ( en remplaçant les variables par de "vraies" valeurs bien entendu ) ???
Et je peux déjà te dire que ta seconde jointure ( le ON ) .. n'est pas bon !!!
Connais tu le SQL ?? Sais tu faire des jointures ?? ( on peut en douter un peu quand on lit tes codes...)
Il serait pas mal de te former un minimum avant de te lancer dans l'écriture du code.. sinon ça va vite devenir compliqué.
if($userPermission === false) { echo 'Erreur. Cette page n\'existe pas.'; exit; }
et par conséquent, que ta variable $userPermission ne contient rien..
ce qui semble logique quand on regarde ta requête
SELECT p.roleID, p.actionID FROM user_permission AS p INNER JOIN user_action AS a ON p.actionID = a.actionID INNER JOIN user_role AS r ON p.roleID > :user_role_id WHERE a.slug = :action_slug
L'as tu testé ??? ( en remplaçant les variables par de "vraies" valeurs bien entendu ) ???
Et je peux déjà te dire que ta seconde jointure ( le ON ) .. n'est pas bon !!!
Connais tu le SQL ?? Sais tu faire des jointures ?? ( on peut en douter un peu quand on lit tes codes...)
Il serait pas mal de te former un minimum avant de te lancer dans l'écriture du code.. sinon ça va vite devenir compliqué.
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
1
1 avril 2022 à 10:47
1 avril 2022 à 10:47
Bonjour, j'ai de nouveau modifié mon code et je n'ai plus de messages d'erreurs sur la page admin/index.php, par contre
la variable $menu_html m'affiche pas les liens vers les pages autorisées. J'ai seulement les liens Site Web & Déconnexion.
Voici mon code modifié :
la variable $menu_html m'affiche pas les liens vers les pages autorisées. J'ai seulement les liens Site Web & Déconnexion.
Voici mon code modifié :
public function displayMenu($user_role_id) { try { $sql = 'SELECT a.name, a.slug FROM user_action AS a INNER JOIN user_permission AS p ON a.actionID = p.actionID WHERE p.roleID < :user_role_id'; $stmnt = $this->db->prepare($sql); $stmnt->execute(array( ':user_role_id' => $user_role_id )); while($row = $stmnt->fetch(PDO::FETCH_ASSOC)) { $menu_data[] = $row; } if(isset($menu_data)) { return $menu_data; } else { return false; } } catch(PDOException $e) { echo 'Une erreur est survenue lors de la récupération d\'une des données dans la base.<br> Message d\'erreur : ' . $e->getMessage(); } } public function checkUserPermission($action_slug, $user_role_id) { try { $sql = 'SELECT p.actionID, p.roleID FROM user_permission AS p INNER JOIN user_action AS a ON p.actionID = a.actionID WHERE a.slug = :action_slug'; $stmnt = $this->db->prepare($sql); $stmnt->execute(array( ':action_slug' => $action_slug )); while($row = $stmnt->fetch(PDO::FETCH_ASSOC)) { if($row['p.roleID'] > $user_role_id) { return false; } else { return true; } } } catch(PDOException $e) { echo 'Une erreur est survenue lors de la récupération d\'une des données dans la base.<br> Message d\'erreur : ' . $e->getMessage(); } }
$level = isset($_SESSION['level']) ? $_SESSION['level'] : NULL; $manager = new userManager($db); $menu_items = $manager->displayMenu($level); $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"; } }
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
1 avril 2022 à 11:46
1 avril 2022 à 11:46
Tu as testé ta requête en DIRECTE dans ta BDD ???
Elle te retourne ce que tu veux ??
Elle te retourne ce que tu veux ??
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
1
1 avril 2022 à 14:37
1 avril 2022 à 14:37
Elle me retourne admin/index.php
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
1 avril 2022 à 14:39
1 avril 2022 à 14:39
et c'est ce que tu veux ??
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
1
1 avril 2022 à 15:07
1 avril 2022 à 15:07
si je fais ça =>

SELECT a.name, a.slug FROM user_action AS a INNER JOIN user_permission AS p ON a.actionID = p.actionID INNER JOIN user_role AS r WHERE p.roleID = r.roleID;
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
1 avril 2022 à 16:39
1 avril 2022 à 16:39
Et cette requête n'est pas celle que tu as utilisé dans ton code non ??
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
1
1 avril 2022 à 16:58
1 avril 2022 à 16:58
Je viens de l'introduire dans mon code & ça m'affiche çà =>

jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
1 avril 2022 à 17:00
1 avril 2022 à 17:00
Tu viens de l'introduire ....... ..... QUOI ??? ( la requête ? )
Où ?? ( à la place de l'autre ? )
Tu penses à nous montrer ton code tel qu'il est maintenant ?
Où ?? ( à la place de l'autre ? )
Tu penses à nous montrer ton code tel qu'il est maintenant ?
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
1
1 avril 2022 à 17:19
1 avril 2022 à 17:19
Ma table user
mysql> SELECT * FROM user;
+--------+----------+--------------------------------------------------------------+---------+
| userID | username | userpass | role_id |
+--------+----------+--------------------------------------------------------------+---------+
| 1 | Cyrille | $2y$10$xBhcc4ChC0Vp6hOCNeDE4u0moFfNvVX0fBuxs70VulLehQV7VfOkO | 3 |
| 2 | Yann | $2y$10$M0rmXEEWw40/bor4bp.E2euu4laF5zLRWUDW5jqJpBx2Bm8Gpn8J6 | 2 |
| 3 | aucun | $2y$10$HUweFwvOtSi/gFqINcA6h.FSTGZ7O.QFs279C5AGWj3pjKgmj1Ygm | 1 |
+--------+----------+--------------------------------------------------------------+---------+
3 rows in set (0.00 sec)
ma table user_action
mysql> SELECT * FROM user_action;
+----------+--------------+----------------+
| actionID | name | slug |
+----------+--------------+----------------+
| 1 | Accueil | index |
| 2 | Images | create-image |
| 3 | Images | update-image |
| 4 | Images | delete-image |
| 5 | Utilisateurs | account-create |
+----------+--------------+----------------+
5 rows in set (0.00 sec)
ma table user_permission
mysql> SELECT * FROM user_permission;
+--------------+----------+--------+
| permissionID | actionID | roleID |
+--------------+----------+--------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 2 |
| 4 | 4 | 2 |
| 5 | 5 | 3 |
+--------------+----------+--------+
5 rows in set (0.00 sec)
ma table user_role
mysql> SELECT * FROM user_role;
+--------+----------------+-------+
| roleID | name | level |
+--------+----------------+-------+
| 1 | aucun | 0 |
| 2 | Editeur | 1 |
| 3 | Administrateur | 2 |
+--------+----------------+-------+
3 rows in set (0.00 sec)
mysql> SELECT * FROM user;
+--------+----------+--------------------------------------------------------------+---------+
| userID | username | userpass | role_id |
+--------+----------+--------------------------------------------------------------+---------+
| 1 | Cyrille | $2y$10$xBhcc4ChC0Vp6hOCNeDE4u0moFfNvVX0fBuxs70VulLehQV7VfOkO | 3 |
| 2 | Yann | $2y$10$M0rmXEEWw40/bor4bp.E2euu4laF5zLRWUDW5jqJpBx2Bm8Gpn8J6 | 2 |
| 3 | aucun | $2y$10$HUweFwvOtSi/gFqINcA6h.FSTGZ7O.QFs279C5AGWj3pjKgmj1Ygm | 1 |
+--------+----------+--------------------------------------------------------------+---------+
3 rows in set (0.00 sec)
ma table user_action
mysql> SELECT * FROM user_action;
+----------+--------------+----------------+
| actionID | name | slug |
+----------+--------------+----------------+
| 1 | Accueil | index |
| 2 | Images | create-image |
| 3 | Images | update-image |
| 4 | Images | delete-image |
| 5 | Utilisateurs | account-create |
+----------+--------------+----------------+
5 rows in set (0.00 sec)
ma table user_permission
mysql> SELECT * FROM user_permission;
+--------------+----------+--------+
| permissionID | actionID | roleID |
+--------------+----------+--------+
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 2 |
| 4 | 4 | 2 |
| 5 | 5 | 3 |
+--------------+----------+--------+
5 rows in set (0.00 sec)
ma table user_role
mysql> SELECT * FROM user_role;
+--------+----------------+-------+
| roleID | name | level |
+--------+----------------+-------+
| 1 | aucun | 0 |
| 2 | Editeur | 1 |
| 3 | Administrateur | 2 |
+--------+----------------+-------+
3 rows in set (0.00 sec)
ameb2908
Messages postés
92
Date d'inscription
jeudi 17 mars 2022
Statut
Membre
Dernière intervention
27 janvier 2025
1
1 avril 2022 à 17:26
1 avril 2022 à 17:26
C'est la requête que j'ai introduit.
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
1 avril 2022 à 18:52
1 avril 2022 à 18:52
que tu as introduit OU ?????
Dans ton code ????
Et donc.. à quoi ressemble ton code désormais ????
Et puis... Pour chaque "JOIN" il te faut un ON
Et ensuite.. un WHERE pour filtrer sur le champ RoleID par exemple avec l' ID de l'utilisateur que tu lui envois en paramètre de ta fonction...
Mais avant de te repencher sur le code PHP ... assures toi déjà d'avoir une requête SQL conforme à ce que tu veux obtenir...
Seulement après tu pour l'introduire... dans ton code php ..!
Dans ton code ????
Et donc.. à quoi ressemble ton code désormais ????
Et puis... Pour chaque "JOIN" il te faut un ON
Et ensuite.. un WHERE pour filtrer sur le champ RoleID par exemple avec l' ID de l'utilisateur que tu lui envois en paramètre de ta fonction...
Mais avant de te repencher sur le code PHP ... assures toi déjà d'avoir une requête SQL conforme à ce que tu veux obtenir...
Seulement après tu pour l'introduire... dans ton code php ..!