Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Usando Session e Nivel de Acesso Usuário

Pessoal estou com uma dúvida .

Gostaria de implementar um login vou usar a session mas também gostaria de aproveitar e comparar se o usuário que está logado tem o perfil de acesso de administrador que defini como sendo no banco 1 administrador 0 usuário .

Olha como estou pensando em fazer e vejam se está no caminho certo . O usuário loga eu guardo a session e gostaria tambem de guardar o nivel de acesso dele . Para depois fazer uma comparação igual na aula que diz que para ter acesso a certa funcionalidade o usuário deve estar logado então gostaria de fazer um

if(isset($_SESSION["usuario_logado"] && $nivelAcesso == 1 ) {
escreveria a lógica 
}

Porém teria como eu buscar esse nivel de acesso na hora que o cara acessa é colocar ele dentro da SESSION ou não .

Agradecendo de antemão que tiver disponíbilidade para me ajudar .

4 respostas
solução!

Hugo, você pode sim fazer isto.

Como você quer armazenar na session o nível, o if poderia ficar assim:

if(isset($_SESSION["usuario_logado"] && $_SESSION["usuario_logado"]["nivelAcesso"] == 1 ) {
          escreveria a lógica 
}

Ou seja $_SESSION["usuário_logado] é uma variável de session onde você armazenaria os dados do usuário, que buscou na tabela usuários.

Quando você lê a tabela, se encontrar o usuário, já cria a variável$_SESSION["usuário_logado] de joga para dentro dela a linha lida na tabela (que será um array.)

Eu imagino que você tenha feito nos moldes da aula. Portanto você deve ter a function abaixo:

function buscaUsuario($conexao, $email, $senha) {

    $senhaMd5 = md5($senha);
    $email = mysqli_real_escape_string($conexao, $email);
    $query = "select * from usuarios where email =  '{$email}' and senha = '{$senhaMd5}'"; 

    $resultado = mysqli_query($conexao, $query);
    $usuario = mysqli_fetch_assoc($resultado);
    return($usuario);

}
  • Esta function retorna $resultado. Tenha em mente que ela é um array. E é este array que vai ser armazenado em

$_SESSION["usuario_logado"] = $resultado.

  • Como a sua tabela de usuários tem as colunas email, senha e nivelAcesso, você pode recuperar os dados da seguinte forma:

$_SESSION["usuario_logado"]["email"]

$_SESSION["usuario_logado"]["senha"]

$_SESSION["usuario_logado"]["nivelAcesso"]

A partir daí, acho que você consegue fazer o que deseja.

Abraço

Excelente vou testar aqui e posto a resposta muito obrigado

correção:

Em vez de $_SESSION["usuario_logado"] = $resultado o correto seria

$_SESSION["usuario_logado"] = $usuário

Sidnei eu estou implementando algumas partes da página que estou desenvolvendo e logo conseguindo lhe dou um retorno aqui no forum , agradeço desde já .