Запретить пользователю доступ к странице администратора - PullRequest
0 голосов
/ 22 октября 2010

У меня есть страница входа в php с контролем сеанса. Он направляет обычного пользователя на info.php, а администратора на info_admin.php. Если я захожу с "обычным" пользователем, он переходит на info.php, однако в адресной строке я могу перейти на info_admin.php, и он не выгоняет меня, дает мне доступ. Как я могу контролировать это или запретить пользователю делать это вручную?

Для информации, я использую этот скрипт: http://php -login-script.com /

Большое спасибо!

Ответы [ 4 ]

5 голосов
/ 23 октября 2010

Просто чтобы сделать код Lotus Notes немного более компактным:

<?php
if (!isset($_SESSION['user_level']) || ($_SESSION['user_level'] != 2)) {
    header('Location: login.php');
    exit;
}
?>

<!-- Your page HTML here -->
2 голосов
/ 22 октября 2010

Я быстро просканировал код входа в систему, кажется, что при первом входе в систему пользователь устанавливает переменную $_SESSION['user_level'].

Чтобы разрешить, например, только пользователю уровня 2, поставить это вверхвашей страницы.Он должен перенаправить всех, кто не является пользователем уровня 2, обратно на страницу входа.

<?php

if (isset($_SESSION['user_level'] && $_SESSION['user_level'] == 2) {

?>


<!-- Your page HTML here -->


<?php

} else {
    header('Location: login.php');
}

?>
1 голос
/ 22 октября 2010

Просто добавьте дополнительную функцию, которая проверяет уровень пользователя - если он находится на желаемом уровне или выше, возвращает true. Если нет, верните false и аварийное переключение. Затем на вашей странице, которую вы хотите защитить, запустите функцию с желаемым уровнем защиты.

Например:

function checkPerms($level) {
  if ($level >= number) {
   return true
  } else {
    failover here
  }
}

тогда заходите на ваши страницы

checkperms(5);

РЕДАКТИРОВАТЬ: Если вы действительно гладкий, вы могли бы просто добавить дополнительный параметр к исходному вызову функции с уровнем пользователя, по умолчанию наименьшее значение. Затем, если пользователь подтверждает, что он зарегистрирован, он может одновременно проверить уровень пользователя.

1 голос
/ 22 октября 2010

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

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