Ir para conteúdo
Fórum Script Brasil
  • 0

Incluir nível de acesso ao login


elicarlos1987

Pergunta

Bom dia,
Estou começando agora no universo da programação PHP e com a ajuda de uns tutoriais estou montando um sistema de login.
Essa etapa consegui, porém estou tentando colocar níveis de acesso ao fazer o login. No meu banco de dados no PHPmyAdmin criei uma coluna com o nome "nível".
Gostaria de saber como coloco cada usuário ao fazer o  login ser redirecionado diretamente para uma página especifica de acordo com o seu nível colocado na tabela.

 

Os códigos da página de login e a de validação para entenderem melhor o que foi feito:
index.php

	<?php
    if(isset($_GET['msg'])){
        $msg = $_GET['msg'];
	        switch($msg){
            case 1:
            ?>
                <div class="message">
                    <div class="alert alert-danger">
                        <a href="index.php" class="close" data-dismiss="alert">&times</a>
                        Email ou Senha errados tente outra vez.
                    </div>
                </div>
            <?php
            break;
            case 2:
            ?>
                <div class="message">
                    <div class="alert alert-danger">
                        <a href="index.php" class="close" data-dismiss="alert">&times</a>
                        Você não tem permissão para acessar esta página.
                    </div>
                </div>
            <?php
            break;
            case 3:
            ?>
                <div class="message">
                    <div class="alert alert-success">
                        <a href="index.php" class="close" data-dismiss="alert">&times</a>
                        Logout realizado com sucesso.
                    </div>
                </div>
            <?php
            break;
        }
    }
 ?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Login</title>
    <link rel="stylesheet" href="css/estilo.css">
    <link rel="stylesheet" href="css/bootstrap.min.css">
</head>
<body>
    <div class="container">
        <form action="autenticar.php" method="post" class="form-login">
            <h2 class="form-login-heading">Entre com o usuário</h2>
            <label for="inputUsuario" class="sr-only">Usuario</label>
            <input type="text" id="inputUsuario" name="inputUsuario" class="form-control" placeholder="Usuario" required autofocus>
            <label for="inputPassword" class="sr-only">Senha</label>
            <input type="password" id="inputPassword" name="inputPassword" class="form-control" placeholder="Senha" required>
            <div class="checkbox">
                <label><input type="checkbox"value="esqueci">Esqueci a senha</label>
            </div>
            <button type="submit" class="btn btn-lg btn-primary btn-block">Entrar</button>
	        </form>
    </div>
</body>
</html>
	

autenticar.php

	<?php
    require ("db.php");
	    $email = $_POST['inputUsuario'];
    $senha = md5($_POST['inputPassword']);
    
	    $query = mysqli_query($conn,"SELECT * FROM usuarios WHERE email = '$email' AND senha = '$senha'");
    $row = mysqli_num_rows($query);
    if ($row > 0){
        session_start();
        $_SESSION['email'] = $_POST['inputUsuario'];
        $_SESSION['senha'] = $_POST['inputPassword'];
        header('Location: dashboard.php');
    }else{
        header('Location: index.php?msg=1');
    }
?>

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Certo o que você precisa é fazer agora é

Salvar o nível de permissão em sessão pra facilitar a vida.

Presumo que essas páginas tenham links para cada área do sistema, enfim, um menu, eu costumo fazer uma página só e faço ifs em volta de cada menu verificando a permissão para decidir se devo exibir ou não, mas você pode...

Fazer um If ou Switch em autenticar.php para redirecionar para a pagina correta.

Mas além disso faça também uma verificação na pagina que tem o recurso.

Digamos que uma página sirva para cadastrar usuários e eu não tenho essa permissão, por isso no meu painel não tem esse link, porém se um diz eu logar com o meu usuário e digitar o link de cadastro de usuários e nessa página não tiver verificação nenhuma vou acessar sem nenhum problema.

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado Markus.
Na verdade nenhum usuário terá direito a fazer cadastro ou mexer no sistema. As página aberta apresentará será somente para visualização. Apresentará um resumo das compras feitas por aquele respectivo usuário.

Em qual parte do autenticar.php eu preciso colocar o if?
Desculpa pela pergunta, é que como disse to começando agora a programar.

 

21 horas atrás, Markus Magnus disse:

Certo o que você precisa é fazer agora é

Salvar o nível de permissão em sessão pra facilitar a vida.

Presumo que essas páginas tenham links para cada área do sistema, enfim, um menu, eu costumo fazer uma página só e faço ifs em volta de cada menu verificando a permissão para decidir se devo exibir ou não, mas você pode...

Fazer um If ou Switch em autenticar.php para redirecionar para a pagina correta.

Mas além disso faça também uma verificação na pagina que tem o recurso.

Digamos que uma página sirva para cadastrar usuários e eu não tenho essa permissão, por isso no meu painel não tem esse link, porém se um diz eu logar com o meu usuário e digitar o link de cadastro de usuários e nessa página não tiver verificação nenhuma vou acessar sem nenhum problema.

 

Link para o comentário
Compartilhar em outros sites

  • 0
<?php
    require ("db.php");
    $email = $_POST['inputUsuario'];
    $senha = md5($_POST['inputPassword']);

    $query = mysqli_query($conn,"SELECT * FROM usuarios WHERE email = '$email' AND senha = '$senha'");
    $row = mysqli_num_rows($query);
    $usuario = mysqli_fetch_assoc($query);
    if ($row > 0){
        session_start();
        $_SESSION['email'] = $_POST['inputUsuario'];
        $_SESSION['senha'] = $_POST['inputPassword'];
        $_SESSION['permissao'] = $usuario['permissao'];
        switch ($_SESSION['permissao']) {
            case 'nivel1':
                header('Location: nivel1.php');
                break;
            case 'nivel2':
                header('Location: nivel2.php');
                break;
        }
    }else{
        header('Location: index.php?msg=1');
    }
?>

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...