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

Sistema De Login


bush

Pergunta

Boa tarde !!!

Pessoal seguinte, eu tenho um sistema que conten 3 niveis de acesso ou seja user ,admin e master.

poren eu estou com um problema não consigo fazer com que o usuario do nivel user não consiga acessar as paginas do nivel master.

Se o usuario master passar o link para o usuario normal ele consegui acessar as paginas.

Tem algun modo de bloquear isso?

Se alguen puder me ajuda eu posto o codigo aqui..

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Assumindo que você esteja controlando isso por sessões, faça assim, na hora que o cara fizer login, veja que tipo de usuário ele é... dai dependendo do tipo de usuário é criado uma sessão com o nome diferente, por exemplo, você pode ter 3 tipos de sessões:

$_SESSION['admin']; -> para administradores

$_SESSION['master']; -> para nível master

$_SESSION['user']; -> para usuário...

Nas páginas você verifica que tipo de sessão o cara tem e se aquela sessão pode ser usada para acessar a página em questão... por exemplo se o cara tiver setada uma $_SESSION['master'] ou $_SESSION['user'] e tentar acessar a página admin, ele não consegue, pois não terá a $_SESSION['admin']

O que deve estar acontecendo com o seu sistema é que só registrado apenas um tipo de $_SESSION que diz que o cara fez login, mas não guarda qual o tipo de login...

Uma outra alternativa, que dá quase na mesma é criar uma session que guarde o nível do cara e dai você confere esse nível antes de dar acesso a página pro cara...

Link para o comentário
Compartilhar em outros sites

  • 0

na pagina login.php tenho esse codigo montando a sessão.

$_SESSION["id_usuario"] = $dados["id"];

$_SESSION["nome_usuario"] = stripslashes($dados["nome"]);

$_SESSION["permissao"] = $dados["postar"];

$_SESSION["status"] = $dados["status"];

header("Location: index2.php");

exit;

}

E na pagina que ele é jogado por ex que no caso é index2.php

está assim:

if($_SESSION["permissao"] == "0")

{

echo "Prezado usuario você está desativado em nosso sistema por algum motivo de erro no cadastro. favor se recastrar!";

echo " <a href=\"atualiza_cadastro/index.html\">Recadastrar</a>\n";

}

if($_SESSION["permissao"] == "1")

{

include ("navegacaouser.php");

include ("saudacao_user.php");

include ("comunicados_user.php");

include ("noticia_user.php");

}

if($_SESSION["permissao"] == "2")

{

include ("navegacaodc.php");

include ("saudacao_dc.php");

include ("comunicados_dc.php");

include ("noticia_dc.php");

}

if($_SESSION["permissao"] == "3")

{

include ("navegacaoadmin.php");

include ("menu.php");

include("pgadmin.php");

}

Nesse caso é so eu acrencentar um campo no verifica.php que esta assim:

if(!isset($_SESSION["id_usuario"]) || !isset($_SESSION["nome_usuario"]))

{

com o campo permissão ?

Link para o comentário
Compartilhar em outros sites

  • 0

Sim o verifica.php é requirido em todas as paginas.

então é so eu acrescentar assim:

<?php

// Inicia sessões

session_start();

// Verifica se existe os dados da sessão de login

if(!isset($_SESSION["id_usuario"]) || !isset($_SESSION["nome_usuario"])||!isset($_SESSION["permissão"]))

{

// Usuário não logado! Redireciona para a página de login

header("Location: erro.html");

exit;

}

?>

Uma duvida !

Desse modo as paginas que tão na pagina que tão liberadas apenas para o nivel master os outros não acessan ?

mesmo passando o link?

tipo: eu criei uma unica pagina e coloquei isso :

if($_SESSION["permissao"] == "0")

{

echo "Prezado usuario você está desativado em nosso sistema por algum motivo de erro no cadastro. favor se recastrar!";

echo " <a href=\"atualiza_cadastro/index.html\">Recadastrar</a>\n";

}

if($_SESSION["permissao"] == "1")

{

include ("navegacaouser.php");

include ("saudacao_user.php");

include ("comunicados_user.php");

include ("noticia_user.php");

}

if($_SESSION["permissao"] == "2")

{

include ("navegacaodc.php");

include ("saudacao_dc.php");

include ("comunicados_dc.php");

include ("noticia_dc.php");

}

if($_SESSION["permissao"] == "3")

{

include ("navegacaoadmin.php");

include ("menu.php");

include("pgadmin.php");

}

de modo que aparece na mesmo pagina os includes de cada nivel.

Ai eu colocando a permissão na sessão os outros niveis não acessan se outros passarem os links ?

Link para o comentário
Compartilhar em outros sites

  • 0

está.. mas acontece que você vai ter que fazer um controle em cada página individualmente, então... nas páginas do admin, por exemplo você coloca:

if(!isset($_SESSION["admin"]))

{

header("Location: erro.html");

exit;

}else{

e assim por diante, a verificação vai ter que ser feito dentro do próprio arquivo da página...

Link para o comentário
Compartilhar em outros sites

  • 0

Eserra coloquei assim nas paginas;

<?php

// Verificador de sessão

require "verifica.php";

if(!isset($_SESSION["3"])

{

header("Location: erro.html");

exit;

}else{

?> mais deu esse erro:

Parse error: parse error in c:\arquivos de programas\easyphp1-8\www\roud14\teste.php on line 6

onde você colocou admin eu coloquei o nivel do usuario que no meu caso é 3 para admin.

você sabe me dizer o que to fazendo errado?

Link para o comentário
Compartilhar em outros sites

  • 0

Só complementado o que disse o ESERRA o include simplesmenta funciona como um copiar e colar, ele copia o que está no .php e cola ali no mesmo local onde foi chamado, nada impede que alguém use diretamente o endereço e acesse, por isso é importante que tenha a verificação em toda página que deve ser autenticada.

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...