Как сделать так, чтобы навигационные ссылки могли видеть только пользователи типа «Администратор» или «Администратор»

0

То, что я пытаюсь сделать, это иметь там, где ссылки скрыты от пользователей regualr, и он будет проверять, что такое тип пользователей, если на уровне администратора или менеджера он отобразит некоторые примеры ссылок:

<a href="adminarea.php"> Admin Only </a> 

Если только администратор типа пользователя может видеть ссылку выше, а также ссылку ниже в навигационной панели или Менеджер может видеть только ссылку только для менеджеров.

<a href="manager.php"> Managers Only </a> 

Это то, что покажет Тип пользователя я только три пользовательских типа: Admin, Manager и User levels.

 <?php echo $_SESSION['user']['user_type'];?> 

Это то, что у меня есть прямо сейчас, где только зарегистрированный пользователь может просматривать эти ссылки ниже:

<?php 
session_start();
if(isset($_SESSION['user']['username'])){
    echo "
        <li class='nav-item dropdown'>
        <a class='nav-link dropdown-toggle' href='#' id='navbarDropdownMenuLink' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'><i class='fa fa-exclamation-triangle'></i>
        Admin/Managment
        </a>
        <div class='dropdown-menu' aria-labelledby='navbarDropdownMenuLink'>
        <a class='nav-link' href='managment/login.php'>Managment Login</a>
        <a class='nav-link' href='admin/login.php'>Admin Login</a> 
        </div>
        </li>
        ";

echo "   </li>
    <li class='nav-item'>
    <a class='nav-link' href='logout.php'><i class='fa fa-power-off'></i> Logout</a>
    </li>";

}else{
}
?>

Любые идеи о том, как я могу это сделать? Заранее спасибо!

  • 0
    Является ли $_SESSION['user']['user_type'] строкой? Я спрашиваю, потому что я обычно задаю их как целые числа, потому что я связываю их как идентификаторы другой таблицы, что позволяет мне получать информацию о конкретном типе пользователя, что полезно, когда вам нужен инструмент для управления типами пользователей. В любом случае, все 2 ответа ниже в значительной степени верны с точки зрения выполнения, но вам придется заменить некоторые вещи значениями, с которыми вы фактически работаете. В любом случае, если вы понимаете, как работает PHP, вам будет достаточно одного из ответов.
  • 0
    У вас есть таблица, настроенная в вашей базе данных для php, чтобы проверять пользователя, менеджера, администратора, если так, нам нужно знать идентификатор каждого для проверки?
Показать ещё 8 комментариев
Теги:

2 ответа

0
Лучший ответ

Попробуй это:

<?php
session_start();
if(isset($_SESSION['user']['username'])){
    if (($_SESSION['user']['user_type'] == 'admin')||($_SESSION['user']['user_type'] == 'manager')){
        if ($_SESSION['user']['user_type'] == 'admin') {
            $link = "<a class='nav-link' href='admin/login.php'>Admin Login</a>";
        } elseif ($_SESSION['user']['user_type'] == 'management') {
            $link = "<a class='nav-link' href='managment/login.php'>Managment Login</a>";
        }
            echo "
                <li class='nav-item dropdown'>
                <a class='nav-link dropdown-toggle' href='#' id='navbarDropdownMenuLink' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'><i class='fa fa-exclamation-triangle'></i>
                Admin/Managment
                </a>
                <div class='dropdown-menu' aria-labelledby='navbarDropdownMenuLink'>".$link."
                </div>
                </li>
                ";

echo "</li>
    <li class='nav-item'>
    <a class='nav-link' href='logout.php'><i class='fa fa-power-off'></i> Logout</a>
    </li>";
}
}else{
}
?>
0

Вы можете легко проверить тип пользователя, а затем использовать оператор if else для отображения необходимого.

Здесь мое редактирование вашего кода....

<?php 
session_start();
if(isset($_SESSION['user']['username'])){
    echo "
        <li class='nav-item dropdown'>
        <a class='nav-link dropdown-toggle' href='#' 
          id='navbarDropdownMenuLink' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'><i class='fa fa-exclamation-triangle'></i>
        Admin/Managment
        </a>
        <div class='dropdown-menu' aria-labelledby='navbarDropdownMenuLink'> ";
?>
<?php
        if ($_SESSION['user']['username'] == 'Admin'){
?>
        <a class='nav-link' href='managment/login.php'>Managment Login</a>
<?php 
        } elseif ($_SESSION['user']['username'] == 'Manager'){
?>
            <a class='nav-link' href='admin/login.php'>Admin Login</a>
<?php 
        } 
?> 
</div>
</li>
";

    echo "   </li>
        <li class='nav-item'>
        <a class='nav-link' href='logout.php'><i class='fa fa-power-off'></i> Logout</a>
        </li>";
}else{

}
?>
  • 0
    Вы пытались запустить этот код? ваш остальной выпадает из кода PHP!
  • 0
    @ А-а-а, ты имел в виду последнюю "остальную часть", верно? Я просто сохранил это как есть в вопросе, потому что BigFellaHQ может иметь некоторые планы по этому поводу. (Он запускается, когда сеанс не содержит тип пользователя - очевидно, пользователь не вошел в систему.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню