Ir ao conteúdo
  • Cadastre-se

Marcelocjbh

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

1
  1. Coloquei aqui conforme sua orientação e deu certo. Adicionei isto nos cabeçalhos de cada pagina, informando o nível que necessito. Foi perfeito. Muito obrigado pela orientação! ----------------------------------------------------------- Vou realizar as devidas mudanças conforme você me orientou. Muito obrigado por compartilhar com a gente.
  2. Olá pessoal! Sou iniciante na linguagem. Estou criando um CRUD para o serviço, onde terei 3 niveis de acessos. NÍVEIS: 1 - Administrador (Cadastra e exclui e edita as informações) 2 - Colaborador (Apenas cadastras informações) 3 - Usuario (Apenas lê as informações) Adicionei um script onde ao logar, o sistema redireciona conforme o nível: Parte do codigo que redireciona: // O usuário está logado $_SESSION['logado'] = true; $_SESSION['nome_usuario'] = $fetch_usuario['user_name']; $_SESSION['usuario'] = $fetch_usuario['user']; $_SESSION['user_id'] = $fetch_usuario['user_id']; $_SESSION['nivel'] = $fetch_usuario['nivel']; if($_SESSION['nivel'] == "1"){ header("Location: administrador.php"); }elseif($_SESSION['nivel'] == "2"){ header("Location: colaborador.php"); }elseif($_SESSION['nivel'] == "3"){ header("Location: usuario.php"); } VERIFICA_LOGIN.php <?php // Verifica se estamos conectados ao BD if ( ! isset( $conexao_pdo ) || ! is_object( $conexao_pdo ) ) { exit('Erro na conexão com o banco de dados.'); } // Une $_SESSION e $POST para verificação if ( isset( $_POST ) && ! empty( $_POST ) ) { $dados_usuario = $_POST; } else { $dados_usuario = $_SESSION; } // Verifica se os campos de usuário e senha existem // E se não estão em branco if ( isset ( $dados_usuario['usuario'] ) && isset ( $dados_usuario['senha'] ) && ! empty ( $dados_usuario['usuario'] ) && ! empty ( $dados_usuario['senha'] ) ) { // Faz a consulta do nome de usuário na base de dados $pdo_checa_user = $conexao_pdo->prepare('SELECT * FROM usuarios WHERE user = ? LIMIT 1'); $verifica_pdo = $pdo_checa_user->execute( array( $dados_usuario['usuario'] ) ); // Verifica se a consulta foi realizada com sucesso if ( ! $verifica_pdo ) { $erro = $pdo_checa_user->errorInfo(); exit( $erro[2] ); } // Busca os dados da linha encontrada $fetch_usuario = $pdo_checa_user->fetch(); // Verifica se a senha do usuário está correta if ( crypt( $dados_usuario['senha'], $fetch_usuario['user_password'] ) === $fetch_usuario['user_password'] ) { // O usuário está logado $_SESSION['logado'] = true; $_SESSION['nome_usuario'] = $fetch_usuario['user_name']; $_SESSION['usuario'] = $fetch_usuario['user']; $_SESSION['user_id'] = $fetch_usuario['user_id']; $_SESSION['nivel'] = $fetch_usuario['nivel']; if($_SESSION['nivel'] == "1"){ header("Location: administrador.php"); }elseif($_SESSION['nivel'] == "2"){ header("Location: colaborador.php"); }elseif($_SESSION['nivel'] == "3"){ header("Location: usuario.php"); } } else { // Continua deslogado $_SESSION['logado'] = false; // Preenche o erro para o usuário $_SESSION['login_erro'] = 'Usuário ou senha inválidos'; } } ?> O problema é que quando eu logo como por exemplo como nível 3 (usuario.php), se eu apagar o usuario.php apos a barra e colocar administrador.php ou colaborador.php, o sistema aceita. Haveria uma maneira de barrar isto onde o usuário somente teria acesso na pagina respectiva ao seu nível de acesso?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!