Как создать два разных меню на одной странице для разных типов пользователей в HTML с использованием PHP и CSS

#php #html #css

#php #HTML #css

Вопрос:

Я очень новичок в php и HTML, мне нужно создать страницу после входа пользователя в систему, чтобы отобразить меню для другого типа пользователя. 1-й пользователь = работодатель 2-й пользователь = соискатель

Меню для соискателей должно отображать как минимум следующие параметры:

Меню

Редактировать профиль

История приложения

Поиск заданий

Просмотр заданий по категориям

Просмотр вакансий по компаниям

Выход

Меню для работодателей должно отображать как минимум следующие параметры:

Меню

Редактировать профиль компании

Опубликовать новую позицию

Редактировать / удалять опубликованную позицию

Просмотрите заявки на вакансию

Поиск кандидатов

Выход

Я смог исправить свой код и войти в систему с двумя разными типами пользователей. Единственная проблема сейчас заключается в том, что мой второй пользователь — работодатель не будет показывать созданный мной стиль css. В меню jobseeker все работает нормально.

 <!DOCTYPE html>
<?php
    session_start();
    if (!isset($_SESSION['usertype'])){
        Header('Location:login.php?msg=Hacker');
    }
?>

<html>
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style>
    body{
        background-image:
        url('background.jpg');
        background-repeat: no-repeat;
        background-attachment: fixed;
        background-size: cover;
        margin:0;
        font-family:Lucida Sans Unicode, Lucida Grande, sans-serif;
        }
    .topnav {
        background-color: #333;
        overflow: hidden;
    }
    .topnav a{
        float: left;
        color: #c7e1db;
        text-align: center;
        padding: 18px 70px;
        text-decoration: none;
        font-size: 17px;
    }
    .topnav a:hover{
        background-color: #ddd;
        color: #1d77dd;
    }
    .topnav a.active{
        background-color: #ec5e5e;
        color: white;
    }
    </style>
    </head>

    <body>
        <center>
        <?php 
            if($_SESSION['usertype'] == 'JobSeeker') {
        ?>
        <div class="topnav">
        <a class="active" href="http://localhost/a2/menu.php">Menu</a>
        <a href="profile.php"> Profile</a>
        <a href="#appHist">History</a>
        <a href="#jobCat">View Jobs by Category</a>
        <a href="#jobCom">View Jobs by Company</a>
        <a href="logout.php"> Not <?php echo $_SESSION['username'] ?>?  Logout Here</a> 
        </div>
        <br>    
    <?php  } //for employer
        elseif($_SESSION['usertype'] == 'employer') { 
        ?>
        <a class="active" href="menu.php">Menu</a>
        <a href="#profile">Edit Profile</a>
        <a href="#appHist">Application History</a>
        <a href="#jobCat">View Jobs by Category</a>
        <a href="#jobCom">View Jobs by Company</a>
        <a href="logout.php"> Not <?php echo $_SESSION['username'] ?> ? Logout Here</a> 
        </div>
        <br>
        <br>
        <?php 
            echo 'Welcome ' . $_SESSION['username']; 
        ?>
        <?php } ?>
        </center>
    </body>
</html>  

Ответ №1:

Ваш код должен работать, есть некоторые проблемы с сеансами, поэтому он не работал. Вы можете сделать одну вещь, которую при регистрации вы можете использовать usertype в своей базе данных. Предположим, я регистрируюсь как соискатель, тогда вы можете принять usertype в качестве jobseeker значения, в противном usertype случае значение будет employer .

Когда пользователь вошел в систему, очевидно, что вы проводите сеанс для входа с именем пользователя и паролем.

Итак, после входа в систему у вас есть имя пользователя, вы можете легко получить это конкретное имя пользователя usertype . Затем вы можете выполнить условие if else.

Предположим, что когда пользователь вошел в систему, у вас есть сеанс имени пользователя этого пользователя

 $admin = $_SESSION['username'];
  

затем извлеките usertype этого $admin
Запрос должен быть таким

 $fetch_usertype = mysqli_fetch_assoc(mysqli_query($con,"SELECT * FROM 'ypor_user_table' WHERE 'username_column' = '$admin'"));
 $usertype = $fetch_usertype['user_type_column'];
  

Теперь у вас есть usertype , так что вы можете использовать условие if else.

 <?php if ($usertype ==  'employer') {?>
     <ul>
            <li><a class="active" href="menu.php">Menu</a></li>
            <li><a href="#application.php">Edit Profile</a></li>
            <li><a href="#appHist">Application History</a></li>
            <li><a href="#jobCat">View Jobs by Category</a></li>
            <li><a href="#jobCom">View Jobs by Company</a></li>
            <li style="float:right"><a class="active" href="#user">
        <ul> <?php; } 
    elseif ($usertype == 'JobSeeker') { ?>
        <ul>
            <li><a class="active" href="#menu">Menu</a></li>
            <li><a href="#profile">Edit Profile</a></li>
            <li><a href="#appHist">Application History</a></li>
            <li><a href="#jobCat">View Jobs by Category</a></li>
            <li><a href="#jobCom">View Jobs by Company</a></li>       
        </ul> 
    <?php } ?>
  

Комментарии:

1. Я только что добавил свой код аутентификации к приведенному выше. не могли бы вы указать, как использовать $fetch_usertype? в настоящее время мне сказали использовать $hash для создания пароля, а также я использую $_SESSION[‘usertype’]=’JobSeeker’; для получения типа пользователя