Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal, a tempo atras fiz um questionamento aqui sobe um problema que estava tendo no log de um sistema php, onde rapidamente o usuário via a pagina antes de voltar para o login.php
eu usava o seguinte código
<?php
// A sessão precisa ser iniciada em cada página diferente
if (!isset($_SESSION)) session_start();
@session_start();
if($_SESSION["UsuarioNivel"]=="3")
{
}
else
{
echo "<meta http-equiv=refresh content='0; URL=login.php'><h1>Sem premissão para acessar a pagina.</h1>";
}
?>
ai resolveram meu problema com esse código
<?php
session_start();
if(! isset ($_SESSION["UsuarioNivel"]) ){
header("location:login.php");//ou .php
}
if($_SESSION["UsuarioNivel"]=="3") {
}else{
//mostra o que os outros niveis podem ver
}
?>
massa, funcionou, mas agora todos os níveis de usuários estão tendo acesso ao admin e vice e versa, o que não era pra estar acontecendo, alguem pode me dar uma forcinha ai?
Hugo, dessa forma eu retorno pra estaca zero d novo
Meu post anterior está divido em duas partes.
A primeira, são sugestões. Se quiser mudar, mude. Do contrário, continue com a base que você tem. A escolha é sua.
A segunda, pedi mais informações a respeito do que você perguntou, pois não ficou claro o que você quer fazer.
Em relação a voltar a estaca zero, minha opinião é de que voltar e refazer uma base para que ela fique sólida é sempre um esforço válido.
Logo, se você quer continuar com sua base como está, basta responder a segunda parte e prover mais informações sobre o que você quer fazer, assim podemos lhe auxiliar mais :coolio:
Hugo, desculpa se pareci rude, é que sou iniciante de php ainda e estou bem básico. Eu fiz um sistema em que existe níveis de usuários. Funcionava muito bem, mas tinha um defeito.
Tópico do defeito:
http://forum.imasters.com.br/topic/518141-como-esconder-o-contedo-do-site-sem-o-log/#entry2059356
Como você pode ver no tópico eu troquei o código, mas ele tem outro defeito, usuários logados independentes do nível tem acesso as páginas.
Se você tiver algum artigo pra mim dar uma lida ja esta de ótimo tamanho.
Espero que você tenha entendido a questão agora.
Ao meu ver, a resposta do Marcos continua válida.
Poste como você está montando para entendermos melhor o problema.
if($_SESSION["UsuarioNivel"]=="3") {
//mostra o que o usuario nivel 3 pode fazer
}else{
//mostra os demais niveis
}
Cara, só fazer verificação na sessão de nível de usuário, caso ela for nivel de administrador, exiba o conteúdo de administrador, caso contrário, redirecione ela da página. Um exemplo (fazendo de conta que o nível de Administrador seja 3):
if($_SESSION["UsuarioNivel"]=="3") {
echo 'Você está logando como administrador';
}else{
echo 'Você não é administrador';
}
Onde você pode ao invés de executar a saída "Você não é administrador", colocar um código de redirecionamento por exemplo.
Boa champz, qualquer dúvida só falar (y)
-------------------
@off
>
define('CONST_LEVEL_GOD', 100);
auehuaehushuea, mandou bem (y)
Vocês estão querendo diser que o que fica entre o if é exibido ao logado e o que fica entre o que esta o else exibir ao não logado né, blz, mas vc tem que entender que vou colocar esse código em todas as páginas atravéz de um include, então como eu faria, coloco esse include do topo ou no footer, pq eu testava usando no topo e não estava dando muito certo, em estava logado com nivel 2 entrava no nivel 1 e vice versa
OBS: Leia a edição do meu post lá embaixo antes de qualquer coisa!
Exato cara! Eu vou traduzir para você o código:
Destaques:
>
Ou seja
>
Se a sessão for igual a nível 3, exiba o painel do administrador
Senão (caso contrário)/ (se ela não for igual a nível 3) exiba o conteúdo que não é para administradores.
Em código ficaria mais ou menos assim
if($nivel == 3){
Voce é administrador!
}else{
Voce nao é adminstrador!
}
Ou traduzindo para Português Brasileiro:
se($nivel for igual a 3){
Voce é administrador!
}caso contrário{
Você não é administrador
}
Te recomendo estudar um pouco de Portugol, apesar de ser bobo, ajuda muito!
Abraços!
Edit:
-----------------------------------
Agora entendi a parada do include (dãããããr), você pode fazer de várias maneiras cara:
Página de include (que valida a sessão):
if($nivel == 3){
$admin = 1; //Seta a variavel admin como verdadeiro, para posteriormente ser verificada
}else{
$admin = null; //Seta como falso
}
Nas demais páginas:
if($admin){
echo "Você está logado como administrador!";
}else{
echo "Voce não é administrador!";
}
Sugestões:
// config.php
// em outros arquivos
Sobre o seu problema:
Não ficou muito clara sua dúvida - você quer esconder o conteudo de determinados niveis de acesso?
Como está o restante do seu código?
@braços