Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marangelus

Problema com sessions

Recommended Posts

Oi.

 

Em meu site eu tenho uma área restrita para dois tipos de usuários. Administradores e usuários.

 

Estou com o seguinte problema no meu código.

Se o login de usuarios for validado pelo script o usuário e redirecionado a página de usuários, mas o problema é que se ele, (depois de logado) digitar a página dos administradores na barra de endereços ele consegue acessar normalmente a página. E vice versa com os administradores.

 

Eu queria uma ajuda pra criar duas seções ou sei lá... alguma coisa que proteja melhor essas páginas.

 

Os usuários, senhas e as páginas que eles serão redirecionados depois de logados estão em um banco.

 

Abaixo estão os códigos.

 

Página:

--- index.php ---

<?include "config.php";if ($acao=='ingressar') {$con=mysql_pconnect($host,$user,$pass);mysql_select_db($banco);$sql="select * from dglogin WHERE login='$login'";$result=mysql_query($sql);$linhas=mysql_num_rows($result);for($x=0;$x<$linhas;$x++) {$id=mysql_result($result,$x,0);$login_bd=mysql_result($result,$x,1);$senha_bd=mysql_result($result,$x,2);$pagina_bd=mysql_result($result,$x,3);if ($login==$login_bd AND $senha==$senha_bd) {session_start("dglogin"); //Inicializa a sessãosession_name();session_destroy();session_register("login","senha"); //Registra as variáveis na sessãoheader("Location:$pagina_bd"); //Redireciono para a página principalexit;}else {header ("Location: $PHP_SELF?acao=error");}}}?><?if ($acao=='error') {print"<br><br><center>Login ou senha não conferem</center>";exit;}?><BODY onload="document.getElementById('login').focus()" bgcolor="#FFFFCC" text="#0066FF"><br><br><DIV align="center"> Preencha os campos abaixo: <FORM ACTION="<?echo $PHP_SELF;?>?acao=ingressar" method=post> <DIV align="center"><TABLE width="20%" align="center"><TR> <TD><DIV align="center">Login: <INPUT type=text name=login value=""></DIV></TD></TR><TR> <TD><DIV align="center">Senha: <INPUT type=password name=senha value=""></DIV></TD></TR><TR> <TD><DIV align="center"> <INPUT name="submit" type=submit class="botao" value="Ingressar"></DIV></TD></TABLE></FORM></DIV>--- FIM index.php ---

 

Página:

--- dglogin.php ---

<?session_start("dglogin");if(!(session_is_registered("login") AND session_is_registered("senha"))) {echo "Essa é uma área restrita.<br>Você não tem permissão para acessá-la.";exit;}$login=$HTTP_SESSION_VARS[login];$senha=$HTTP_SESSION_VARS[senha];?>--- FIM dglogin.php ---

 

Nas páginas que nescessitam da seção eu apenas inclui:

<? include "../scripts/acesso_restrito/dglogin.php"; ?>

Quem puder me ajudar eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie um campo na tabela do banco de dados com o nome, por exemplo, "nivel".

Quando a pessoa logar alem de criar as session pra login e senha, crie uma pra receber o nível.

$_SESSION['nivel'] = $resultado_do_banco;

 

Ai você cria por exemplo:

 

senha admin = 10

senha user = 5

 

Então nas paginas você faz a restrição por nível

 

Abraços.

Rodrigo Maia

Promoção Tableless

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.