bush Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 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.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bush Postado Fevereiro 13, 2007 Autor Denunciar Share Postado Fevereiro 13, 2007 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.phpestá 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 ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 O verifica é chamado em todas as páginas?Você tem que verificar a permissão do usuário em cada página que ele acessar... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bush Postado Fevereiro 13, 2007 Autor Denunciar Share Postado Fevereiro 13, 2007 Sim o verifica.php é requirido em todas as paginas.então é so eu acrescentar assim:<?php// Inicia sessõessession_start();// Verifica se existe os dados da sessão de loginif(!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 ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bush Postado Fevereiro 13, 2007 Autor Denunciar Share Postado Fevereiro 13, 2007 Eserra coloquei assim nas paginas;<?php// Verificador de sessãorequire "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 6onde 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 Tá faltando um ):if(!isset($_SESSION["3"])if(!isset($_SESSION["3"])) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 victorhb Postado Fevereiro 13, 2007 Denunciar Share Postado Fevereiro 13, 2007 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bush Postado Fevereiro 13, 2007 Autor Denunciar Share Postado Fevereiro 13, 2007 Ainda está dando erro bom vo procura aqui no forum mesmo algo com relação a isso se não encontrar eu volto a pergunta Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
bush
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
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.