Невозможно различить guish между администратором и входом в студенческую сессию - PullRequest
0 голосов
/ 22 февраля 2020

Я создаю php MySQL веб-сайт, проблема в том, что у меня есть ссылка для входа администратора и пользователя на веб-сайт. Теперь, если я войду из учетной записи студента, а затем нажму на ссылку администратора, функции администратора также открыты. Это означает, что переменная сеанса, которую я использую, чтобы определить, где сеанс активен или нет, не может различить guish между сеансом студента и администратором. Пожалуйста, помогите.

код:

<?php session_start();
if(isset($_SESSION['uname'])){
#PROCEED
}
?>

Здесь $ _SESSION ['uname'] - это имя пользователя из таблицы базы данных, в то время как администратор входит в систему из таблицы администратора, а студент - из своей таблицы. Таблица. Так как оба имеют один и тот же код после входа в систему от имени любого студента или администратора, я могу открыть оба профиля. Пожалуйста, помогите мне исправить это.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2020

Сначала вы должны рассмотреть всех администраторов и студентов как пользователей и сохранить всю их информацию в пользовательском отношении или таблице. Во-вторых, рассмотрим столбец для ролей пользователей в ваших отношениях с пользователями и назовите роль столбца. В-третьих, вы должны сделать возможность установить роль для пользователей в вашей админ-панели, чтобы сделать тему различимой в процессе входа в систему. Представьте, что вы выполнили шаг входа и установили правильное значение роли сеанса для пользователей-администраторов на основе значения столбца роли, затем проверьте роль пользователей и выполните то, что когда-либо было необходимо, например:

<?php 
session_start(); 
if($_SESSION['user_login'] === true) {
    if($_SESSION['user_role'] === 'admin'){
        echo 'user with admin role is login';
    }else{
        echo 'user with student role is login';
    }
}
?>
0 голосов
/ 22 февраля 2020

братан, вы должны установить второй сеанс для аутентификации пользователя для exp

<?php
session_start();
//1 for admin and 2 for user
//dont use 0 because [Type Juggling][1] 
if(isset($_SESSION) && $_SESSION['UserRole'] == 1){
header('location : Admin/index.php');
}elseif(isset($_SESSION) && $_SESSION['UserRole'] == 2){
header('location : User/index.php');
}else{
header('location : Login.php?msg=Login_First');
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...