Ir para conteúdo

POWERED BY:

Arquivado

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

JoaoGusmao

Adicionar nível de acesso no código

Recommended Posts

Seguinte, meu site tem um sistema de cadastros/login de usuários. no entanto, preciso de dividir os usuários em 3 níveis. O usuário normal, o moderador, e o administrador.

Tenho já o código pronto, e não sei como inserir essa função nele.

Espero que com a ajuda de vocês, eu possa conseguir fazer isso.

Os arquivos que compõem o sistema são:

 

O campo de login (login_campo.php)

<div id="borda_login">
<div id="corpo_login">
<form action="../funcionamento/logar.php" method="post" enctype="multipart/form-data" name="formlogin">
<table>
 <!--DWLayoutTable-->


   <td><table>
     <!--DWLayoutTable-->

  <tr>
       <td><span style=" font: 15px/18px Helvetica,Arial,Trebuchet MS,sans-serif;  color: #444;">Login:</span></td>
           <td>
           <input name="login" type="text" id="login" style=" border-radius: 7px; padding-left: 9px; border: none!important;  -webkit-box-shadow: 0 -1px 0 rgba(0,0,0,.3),inset 0 1px 2px rgba(0,0,0,.2);  -moz-box-shadow: 0 -1px 0 rgba(0,0,0,.3),inset 0 1px 2px rgba(0,0,0,.2);  box-shadow: 0 -1px 0 rgba(0,0,0,.3),inset 0 1px 2px rgba(0,0,0,.2);  background-color: white;  color: #567792;   opacity: 1;  -webkit-transition: opacity 1s;  -moz-transition: opacity 1s;  -o-transition: opacity 1s; padding: 4px; padding-bottom: 7px; "></td>
         </tr>
     <tr>
       <td><span style=" font: 15px/18px Helvetica,Arial,Trebuchet MS,sans-serif;  color: #444;">Senha:</td></span>
           <td>
             <input name="senha" type="password" style=" border-radius: 7px; padding-left: 9px; border: none!important;  -webkit-box-shadow: 0 -1px 0 rgba(0,0,0,.3),inset 0 1px 2px rgba(0,0,0,.2);  -moz-box-shadow: 0 -1px 0 rgba(0,0,0,.3),inset 0 1px 2px rgba(0,0,0,.2);  box-shadow: 0 -1px 0 rgba(0,0,0,.3),inset 0 1px 2px rgba(0,0,0,.2);  background-color: white;  color: #567792;   opacity: 1;  -webkit-transition: opacity 1s;  -moz-transition: opacity 1s;  -o-transition: opacity 1s; padding: 4px; padding-bottom: 7px; " id="label"></td>
         </tr>  
   </table></td>

   <td valign="top"><label for="Submit"></label>
     <input type="submit" name="logar" value="Logar" style="padding: 20px;" id="logar" /></td>

</table>
</form>
<p style=" text-align: center; border-top: 1px solid #BBB;"><a href="registrar.php" style=" text-decoration: none; color: red; ">Registre-se gratuitamente</a></p>
</div>
</div>

 

um arquivo chamado logar.php:

 

<?php
// inclui o arquiv o de configuração do sistema
include "conecta2.php";
// revebe dados do formulario
$login = htmlspecialchars($_POST['login']);
$senha = md5($_POST['senha']);

// verifica se o usuario existe
$consulta = mysql_query("select * from dados_usuarios where Login='$login'");
$campos = mysql_num_rows($consulta);
if($campos != 0) {
// se o usuario existi verifica a senha dele
if($senha != mysql_result($consulta,0,"Senha")) {
	include ("../includes/login_campo.php");
echo '<p style=" color: red; padding-top: 20px; text-align: center;";><b>Senha incorreta!</b></p>';
	exit;
} else {
	// estiver tudo certo vamos ver se ele é o administrador
	if($login == $login_admin) {
		// se for o login do administrador vamos verificar a senha dele
		// se é igual a do adminizstrado
		if($senha == $senha_admin) {
			// se for o administrador vomos criar a sessão
			session_start();
			$_SESSION['login_usuario'] = $login;
			$_SESSION['senha_usuario'] = $senha;

			// redireciona o link para uma outra pagina
			header("Location: Admin/listar_usuarios.php");

		}
	} else {
		// se o login não for do administrado vamos criar a sessão dele
		session_start();
		$_SESSION['login_usuario'] = $login;
		$_SESSION['senha_usuario'] = $senha;

		// redireciona o link para uma outra pagina
		echo '<meta http-equiv="refresh" content="0; url=../usuario/dados_usuario.php">';
	}
}
} else {
include ("../includes/login_campo.php");
echo '<p style=" color: red; padding-top: 20px; text-align: center;";><b>O usuário informado não existe!</b></p>';
exit;
}
?>

 

e um chamado validar_session.php

<?php
@session_start();

// inclui o arquivo de configuração do sistema
include "conecta2.php";

// verifica se a variavel existir
if(isset($_SESSION['login_usuario']) and isset($_SESSION['senha_usuario'])) {
// se existie as sessões coloca os valores em uma varivel
$login_usuario = $_SESSION['login_usuario'];
$senha_usuario = $_SESSION['senha_usuario'];
} else {
$erro = urlencode("Você não esta logado!");
header("Location: ../index.php");
exit;
}

// verifica se as variaveis estão atribuidas
if(!(empty($login_usuario) or empty($senha_usuario))) {
// se estiverem atribuidos vamos ver se exist o login
$consulta = mysql_query("select * from dados_usuarios where Login = '$login_usuario'");
if(mysql_num_rows($consulta) == 1) {
	// se o usuario exostir vamos verificar a senha
	if($senha_usuario != mysql_result($consulta,0,"Senha")) {
		// se a senha está correta vamos apagar a
		// sessão que existia mas erra a errada
		unset($_SESSION['login_usuario']);
		unset($_SESSION['senha_usuario']);

		$erro = urlencode("Você não esta logado!");
		header("Location: ../index.php");
		exit;
	}
} else {
	unset($_SESSION['login_usuario']);
	unset($_SESSION['senha_usuario']);

	$erro = urlencode("Você não esta logado!");
	header("Location: ../index.php");
	exit;
}
} else {
// caso as sessões estarem vaizias
$erro = urlencode("Você não esta logado!");
header("Location: ../index.php");
exit;
}
mysql_close($conn);
?>

 

O que devo inserir nestes códigos e no banco para fazer os níveis de acesso? (1, 2 e 3)

Compartilhar este post


Link para o post
Compartilhar em outros sites

No bd, você pode criar uma coluna nível,

e verificar com o mysql_fetch_array se ele é adminstrador, moderador, ou usuário comum,

E sempre quando for acessar paginas para administradores e moderadores fazer essa consulta no bd,

Compartilhar este post


Link para o post
Compartilhar em outros sites

De uma olhada no meu sistema o WebSystem, agora é open source.

No sistema eu uso a separação de usuários por níveis que voce cria na hora e define o tipo de acesso que ele vai ter.

 

http://websystem.sourceforge.net

 

o doc /admin/dados.php controla os níveis

o doc /admin/nivel.php cadastra os niveis

o doc /admin/usuario.php controla os usuarios

 

bons estudos ...

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.