Click here to Skip to main content
15,398,211 members
Home / Discussions / Linux, Apache, MySQL, PHP
   

Linux, Apache, MySQL, PHP

 
PinnedForum Guidelines - PLEASE READ PinPopular
Chris Maunder28-Jul-09 2:39
cofounderChris Maunder28-Jul-09 2:39 
Questionimplement ElFinder in PHP language Pin
Alexis Sanchez Vanegas19-May-22 4:28
MemberAlexis Sanchez Vanegas19-May-22 4:28 
QuestionAapanel upload project laravel Pin
marziyeh barooei9-May-22 1:05
Membermarziyeh barooei9-May-22 1:05 
Questionhow do I get total quantity from this code Pin
wixily jnr28-Apr-22 13:29
Memberwixily jnr28-Apr-22 13:29 
AnswerRe: how do I get total quantity from this code Pin
Richard MacCutchan28-Apr-22 21:31
mveRichard MacCutchan28-Apr-22 21:31 
QuestionROLES ET PRIVILEGES UTILISATEURS D'UN SITE Pin
ameb290825-Apr-22 4:06
Memberameb290825-Apr-22 4:06 
Bonjour, j'ai un soucis avec les privilèges utilisateurs (AUCUN, EDITEUR, ADMINISTRATEUR).

C'est à dire, en fonction des identifiants rentrés, on a accès à certaines liens du menu.

et malheureusement chez moi le menu ne s'affiche pas. Besoin d'aide, merci d'avance.

voici mon code :

class/Usermanager.php

PHP
class Usermanager {

    private $db;
 
    public function __construct($db) {

        $this->setDb($db);
    }

    public function setDb(PDO $dbh) {

        return $this->db = $dbh;
    }

    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.action_id
                    AND P.min_role_id < :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 MSG_ERROR . $e->getMessage();
        }
    }

    public function checkUserPermission($action_slug, $user_role_id) {

        try {
        
            $sql = 'SELECT P.action_id, P.min_role_id
                    FROM user_permission AS P
                    INNER JOIN user_action AS A
                    ON A.slug = :action_slug
                    AND P.action_id = A.actionID';
                    

            $stmnt = $this->db->prepare($sql);
            $stmnt->execute(array(

                ':action_slug' => $action_slug
            ));

            while($row = $stmnt->fetch(PDO::FETCH_ASSOC)) {

                $min_role_id = $row['P.min_role_id'];

                if($min_role_id > $user_role_id) {

                    return $min_role_id;
                }
            }
        }
        catch(PDOException $e) {

            echo MSG_ERROR . $e->getMessage();
        }
    }
}


process/process-display-menu.php

PHP
$username_form = isset($_SESSION['username_form']) ? $_SESSION['username_form'] : NULL;

$manager = new Usermanager($db);
$menu_items = $manager->displayMenu($username_form);

$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";
    }
}


process/process-user-permission.php

PHP
$action_slug = substr($filename, 0, 4);

$username_form = isset($_SESSION['username_form']) ? $_SESSION['username_form'] : NULL;

$manager = new Usermanager($db);
$userPermission = $manager->checkUserPermission($action_slug, $username_form);

if($userPermission === false) {

    echo 'Erreur. Cette page n\'existe pas.';

    exit;
}


admin/menu.php

PHP
require('../process/process-display-menu.php');


HTML
<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

PHP
require('../include/inc-connexion.php');
require('../include/inc-config.php');
require('../include/inc-identification-user.php');

$filename = basename( __FILE__ );
require('../process/process-user-permission.php');
require('menu.php');

QuestionHow can I do a google search and get results in backend using JS or PHP? Pin
Social Bookmarking Site14-Apr-22 15:27
MemberSocial Bookmarking Site14-Apr-22 15:27 
Questionproblem in pagination click Pin
irfankundi7861-Apr-22 23:39
Memberirfankundi7861-Apr-22 23:39 
AnswerRe: problem in pagination click Pin
Richard Deeming3-Apr-22 21:36
mveRichard Deeming3-Apr-22 21:36 
GeneralRe: problem in pagination click Pin
irfankundi7864-Apr-22 4:01
Memberirfankundi7864-Apr-22 4:01 
QuestionGUI for Linux Server Pin
Deepak Vasudevan25-Jan-22 3:29
MemberDeepak Vasudevan25-Jan-22 3:29 
QuestionError in page rendering in php Pin
Rahul Gupta Jan202217-Jan-22 1:16
MemberRahul Gupta Jan202217-Jan-22 1:16 
AnswerRe: Error in page rendering in php Pin
Richard Deeming17-Jan-22 1:53
mveRichard Deeming17-Jan-22 1:53 
Questionhow to add date while importing data in csv from mysql query Pin
him_mca16-Jan-22 20:00
Memberhim_mca16-Jan-22 20:00 
Questioni want make check user offline with mysql Pin
Ping tester1-Jul-21 10:56
MemberPing tester1-Jul-21 10:56 
QuestionHow to print for each primary key all the foreign keys column related to it? Pin
EliotSimpleMan5-May-21 14:40
MemberEliotSimpleMan5-May-21 14:40 
AnswerRe: How to print for each primary key all the foreign keys column related to it? Pin
SeanChupas13-May-21 1:50
MemberSeanChupas13-May-21 1:50 
QuestionHow do I calculate the column in PHP union all function Pin
Developer Account18-Apr-21 23:12
MemberDeveloper Account18-Apr-21 23:12 
AnswerRe: How do I calculate the column in PHP union all function Pin
SeanChupas13-May-21 1:51
MemberSeanChupas13-May-21 1:51 
QuestionPHP :: VSCode always opens a new blank window (untitled-1) Pin
Gustavo Laufer AU4-Apr-21 22:00
MemberGustavo Laufer AU4-Apr-21 22:00 
AnswerRe: PHP :: VSCode always opens a new blank window (untitled-1) Pin
SeanChupas5-Apr-21 3:15
MemberSeanChupas5-Apr-21 3:15 
Questioni have this errors in my project please i need help Pin
frank saki24-Mar-21 11:55
Memberfrank saki24-Mar-21 11:55 
AnswerRe: i have this errors in my project please i need help Pin
Richard Deeming24-Mar-21 22:12
mveRichard Deeming24-Mar-21 22:12 
QuestionHow can I echo the numbers using list() function in foreach loop? Pin
Best Tutor24-Feb-21 9:33
MemberBest Tutor24-Feb-21 9:33 
QuestionRe: How can I echo the numbers using list() function in foreach loop? Pin
Richard MacCutchan24-Feb-21 21:56
mveRichard MacCutchan24-Feb-21 21:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.