Давать возможность href в зависимости от пользователя с сеансом, инициализировавшим для неких разрешений

Я нуждаюсь в том, чтобы дать возможность href в некий список пользователя используя сеансы. Например, если у X пользователя есть активный сеанс.

Пример:

if($_SESSION['usuario']=="X") давать возможность тому, что он смог открывать одну ссылку например Gerencias Administrativas

if($_SESSION['usuario']=="Y") давать возможность тому, что он смог открывать одну ссылку например Gerencias Administrativas

if($_SESSION['usuario']=="A") давать возможность тому, что он смог открывать одну ссылку например Gerencias Administrativas

А именно, что X и Y у него были разрешения также для A, A не должен иметь доступ к X ни в Y

С которым они рекомендуют меня используя jquery, или поскольку он мог бы делать ему. Спасибо.

Примеры

Делает LoginLogin пользователя logueado lalcolea позвольте ему вводить в компьютер в раздел Административное Управление и Пользователей например, но ни не в Пользователя Людских ресурсов ни СистемMenu Y не отображай Информации об Административном Управлении Datos

3
задан 04.11.2016, 22:17
3 ответа

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

Тогда, я знаю два способа это делать:

  1. Код чисто

  2. Посредством подмостков, где ты определяешь списки

Две намного лучше вторая из-за вопросов содержания. Представь, что ты вдруг нуждаешься в том, чтобы изменить или добавить список, он состоял бы lidioso в том, чтобы входить в код. Лучше делать изменения в таблице или создавать панель, где администратор смог распределять вышеупомянутые списки.

Очевидно этот post не емкость для этого выбора из-за Вашей природы. Так что я помещу тебе, как санкционировать сеансы, чтобы создавать меню и чтобы допускать к странице. Уже это твое решение, если ты это предпочитаешь делать такими или с выбором 2, (ты был бы должен исследовать или создавать новый вопрос).

Чтобы показывать соединения меню:

function get_menu( $usuario)
{

  $menu = array();

  // O haces un swith

  if ( $usuario === 'A' )
  {
    $menu = array( 'link1' => 'opcion1', 'link2' => 'opcion2', 'linkN' => 'opcionN');
  }

  if ( $usuario === 'B' )
  {
     $menu = array( 'link1' => 'opcion1', 'link2' => 'opcion2', 'linkN' => 'opcionN');
  }

  if ( $usuario === 'C' )
  {
     $menu = array( 'link1' => 'opcion1', 'link2' => 'opcion2', 'linkN' => 'opcionN');
  }

  return $menu; 

  }

И ты это печатаешь так:

session_start();

$menu = get_menu($_SESSION['usuario']);

// O haces una funcion para imprimir 
foreach( $menu as $link => $opcion){

  // ya lo imprimes con tu formato para estilos, aquí es sólo una demostración
  echo "<a href=\"$link.php\">$opcion </a>";

}

До сих пор совсем красивый, сейчас просто нужно санкционировать на каждой странице следующего способа всегда в начало каждого файла:

session_start();

if (!isset($_SESSION['usuario'])){
  // Terminamos o redirigimos con header location
  die('Acceso denegado');

}

$menu = get_menu($_SESSION['usuario']);

// Flag para el acceso
$acceso = false;

foreach ( $menu as $link => $opcion){
  if ( $link === $_SERVER[PHP_SELF])
  {
    $acceso = true;
  }
}

if (! $acceso)
  die('Acceso denegado');

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

Я надеюсь, что он подает тебя!

Замечание:

Также остается добавлять, что $ _SERVER [PHP_SELF] даст тебе точный маршрут файла, со всем и Вашим маршрутом, если он будет состоять в том, что он не в корне. Тогда ты был бы должен делать это внутри foreach:

$array_opcion = explode('/', $link);
$pagina = array_pop($array_opcion);
if ( $link === $pagina)
1
ответ дан 24.11.2019, 12:44
  • 1
    В самом деле podrí схвати создавать funció n, чтобы санкционировать доступ к файлу (ú ltima часть có я говорю) и призывать ее так часто нуждайся. –  J.Correa 12.11.2016, 01:33
  • 2
    Tambié n отсутствие añ adir, что $ _SERVER [PHP_SELF] ты dará точный маршрут файла, со всем и Вашим маршрутом, если он что не está в raí z. Тогда tendrí эксперт, который должен делать это внутри foreach: $ array_opcion = explode (' / ' $opcion); $pagina = array_pop ($opcion); Таким образом ты получаешь array с маршрутом, отделенным из-за í ndices segú n Ваш/. Потом ты извлекаешь ú ltima, что является pá gina как таковой. –  J.Correa 12.11.2016, 01:33

То, что ты мог бы делать, состоит в том, чтобы создавать меню в зависимости от пользователя logueado здесь я оставляю тебе пример:

<?php
            //En el if va la variable con la que identificas al usuario
            if($_SESSION['user'] == "A"){
        ?>
    
    Escribes el menu o <href> que necesitas mostrar al usuario de ese tipo 

<?php } else if($_SESSION['user'] == "B") { ?>

Escribes el menu o <href> que necesitas mostrar al usuario de ese tipo  


<?php } ?>

И так в зависимости от пользователя logueado он будет показывать тебе меню с соединениями к различным частям твоего приложения.

Тебе оставило пример Меню завися, если этот logueado или нет

1
ответ дан 24.11.2019, 12:44

Благодаря всем из-за Ваших вкладов. То, что я сделал, состояло в том, чтобы создавать таблицу с username и я распределил им список. Последующие introducir la descripción de la imagen aquí

в момент делания login пользователь, если он совпадает с lalcolea, покажет ему меню Административное Управление introducir la descripción de la imagen aquí

А именно в бруске меню только покажет ему Административное Управление и не Людские ресурсы как также Системы introducir la descripción de la imagen aquí

Это благодаря тому, что в php я разместил, ВСТУПИТЕ В БРАК для того, чтобы в зависимости от username он показал ему Href, чтобы санкционировать и его redirecciona допустил к следующей Последующей странице

introducir la descripción de la imagen aquí

в validar.php, чтобы искать username в чередующейся таблице, которую я показал им в первом так называемом изображении usuarios_mb, и проверь список или считай introducir la descripción de la imagen aquí

В этой части, если существует username и списка 1 тогда он пропускает в index_ga

introducir la descripción de la imagen aquí

Вкратце я делаю утверждение так с одним вступите в брак как с утверждением в bd

1
ответ дан 24.11.2019, 12:44

Теги

Похожие вопросы