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

Problemas com login usando permissões


buthy

Pergunta

então, tenho um sistema de login no site e existem 3 permissões: Admin, Basico e Avancado

O login é feito corretamente, cada permissao cai em sua respectiva area

Mas apos feito o login, o aluno, por exemplo, pode mudar na barra de endereços e digitar o caminho para a pagina administrativa que passará a poder fazer tudo o que um admin faz...

acho que o problema é no arquivo que valida a session que é chamado em todas as páginas

<?
    
    session_start();
    if(!isset($_SESSION[usrlogin]))
        header("Location: /fisk");
        
?>

como eu vou fazer para restringir as paginas do admin somente para usuarios com permissao de ADMIN

e que os usuarios com a permissao Basico só tenham acesso a pagina com conteudo basico

e os usuarios com permissao avancada, só acessem a pagina com conteudo avancado

obrigado

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Ok, este é o arquivo que valida o login:

<? 
    include "conexao.php";

    $us=$_POST[usr];
    $se=$_POST[pas];
    $sql="SELECT * FROM usuario WHERE usrlogin='$us' and usrsenha='$se'";
    $rs=mysql_query($sql,$con);
    $linha = mysql_fetch_assoc($rs);
      $perm= $linha['usrpermissao'];
    $ok=mysql_num_rows($rs);
    if($ok==0){
        echo  "<script> alert('Erro: usuário e/ou senha incorretos.');</script>";
        echo "<script> window.location='index.php';</script>";        
    }    
    else{    
        if($perm=="Administrador"){
            session_start();
              $_SESSION[usrlogin]=$us;                
              header('location: /fisk/admin/index.php');
          }
        else{
              if($perm=="Havefun"){
                  session_start();
                $_SESSION[usrlogin]=$us;                
                header('location: /fisk/havefun/index.php');
              }
              else{
                session_start();
                  $_SESSION[usrlogin]=$us;                
                  header('location: /fisk/teenstation/index.php');
      
              }
       }          
    }

?>

Em cada destes if ($perm=="") eu devo por dentro uma session recebendo a permissão??

tipo:

$permissao = $_SESSION[usrpermissao];

Isso?

Link para o comentário
Compartilhar em outros sites

  • 0

Tá faltando a verificação de qual tipo de usuário está sendo gravado na sessão.

Vi que no seu código é apenas validado se a sessão existe, e não qual é o valor contido nela.

Talvez seja aí que o problema mora...... rs

Crie uma validação no valor da sessão, tipo

session_start();
    if(!isset($_SESSION[usrlogin]))
        header("Location: /fisk");
    if($_SESSION['permissao'] != "ADM")
        header("Location: /sem_permissao");

Isso é só um exemplo... se você colocar do jeito que eu postei sem alterar nada vai dar problema.... Mas acho que é só ajustar para as sessões válidas e mandar vê..

Boa sorte.

Link para o comentário
Compartilhar em outros sites

  • 0

Tentei usar isso Woody, mas não deu certo

Ficou assim:

<?
    
    session_start();
    
    if(!isset($_SESSION[usrlogin]))
        header("Location: /fisk");
    
    if($_SESSION[usrpermissao] != "Administrador")
        header("Location: /fisk");
        
?>

Tentei mudar pra == "Administrador" e por /fisk/admin mas também não deu certo

Sera que não tenho que mudar algo no validar_login?

Link para o comentário
Compartilhar em outros sites

  • 0
Tentei usar isso Woody, mas não deu certo

Ficou assim:

<?
    
    session_start();
    
    if(!isset($_SESSION[usrlogin]))
        header("Location: /fisk");
    
    if($_SESSION[usrpermissao] != "Administrador")
        header("Location: /fisk");
        
?>

Tentei mudar pra == "Administrador" e por /fisk/admin mas também não deu certo

Sera que não tenho que mudar algo no validar_login?

Faça o seguinte:

Verifique o valor que está na session usrpermissao, só para validar se as informações estão armazenadas.

de um exit() logo após para não abrir a tela inteira...

Depois posta pra gente qual foi o resultado.

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...