Ir para conteúdo

POWERED BY:

Arquivado

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

Cleber Pereira

[Resolvido] Níveis de usuários!

Recommended Posts

Como colocar níveis de usuários nesse sistema que estou fazendo??

 

Tentei algumas soluções, mas acho que não estou fazendo da maneira certa!!

 

Vou postar o código da autenticação do sistema!!

 

login.php

<?php
// obtém os valores digitados
$username = $_POST["username"];
$senha = $_POST["senha"];

// acesso ao banco de dados
include "conecta_mysql.inc";
$resultado = mysql_query("SELECT * FROM usuarios where username='$username'");
$linhas = mysql_num_rows ($resultado);
if($linhas==0)  // testa se a consulta retornou algum registro
{
	echo "<html><body>";
	echo "<p align=\"center\">Usuário não encontrado!</p>";
	echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";
	echo "</body></html>";
}
else
{
   	if ($senha != mysql_result($resultado, 0, "senha")) // confere senha
	{
		echo "<html><body>";
		echo "<p align=\"center\">A senha está incorreta!</p>";
		echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";
		echo "</body></html>";
	}
	else   // usuário e senha corretos. Vamos criar os cookies
	{
		session_start();
	$_SESSION['nome_usuario'] = $username;
	$_SESSION['senha_usuario'] = $senha;
		// direciona para a página inicial dos usuários cadastrados
		header ("Location: pagina_inicial.php");
	}
}
mysql_close($conexao);
?>

A idéia que eu tenho é de ter dois tipos de usuários... administrador e limitado... o administrador poderá acessar páginas que os limitados não poderão acessar...

 

Vai poder por exemplo... fazer alterações em qualquer cadastro... e coisas do tipo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu quando faço isso, coloco um campo chamado "admin" no banco dos usuários, aí faço uma variável no arquivo que verifica se o usuário está logado... por exemplo assim:

 

$query = mysql_query("SELECT * FROM usuarios WHERE username=$username");
$arr = mysql_fetch_array($query);
$user_admin = $arr['admin'];

if($user_admin == 1){
$administrador = 1; }

 

aí quando quero definir página restrita a adminstradores, incluo o arquivo de verificação e coloco uma condição if, assim:

 

if($administrador == 1){
// pagina
}
else {
echo "Somente administradores possuem acesso a esta área.";
}

espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Renato... muito obrigado por postar o código... ajudou muito sim...

 

Mas tentei usar na prática e acabou que não deu muito certo... vou postar aqui para mostrar!!

 

pagina_teste.php

<?php
include "validacao.inc";
include "conecta_mysql.inc";

$query = mysql_query("SELECT * FROM usuarios WHERE username='$username'");
$arr = mysql_fetch_array($query);
$user_admin = $arr['tipo'];

if($user_admin != "administrador"){

echo "Somente administradores possuem acesso a esta área.";


}
else {

echo "<html><body>";
echo "Página restrita!!!<br>";
echo "TESTE!!!<br>";
echo "<p><a href=\"logout.php\">LOGOUT</a></p>";
echo "<br>";
echo "<p><a href=\"altera.php\">ALTERAR SENHA</a></p>";
echo "<br>";
echo "<p><a href=\"pagina_inicial.php\">PÁGINA INICIAL</a></p>";
echo "</body></html>";

}

?>

Eu criei um campo chamado TIPO no BD... e ali eu coloquei em um dos usuários que eu criei a palavra "administrador" e nos outros coloquei "limitado"!!

 

Não sei qual o problema... sempre dá a mensagem... "Somente administradores possuem acesso a esta área." Seja qual for o usuário que eu logue... sempre dá essa mensagem... ou seja... acho que ele não tá entendendo essa instrução... ele não ta encontrando esse "$user_admin == "administrador"!!

 

Não sei o que fazer... Se puder me ajudar... Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa diferentes nomes de sessions...

 

ao logar voce verifica no banco de dados oque ele é....

 

session_start('usuario'); ou session_start('administrador');

 

e depois é so controla oque exibe ou onde pode entrar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tava fazendo besteira... era óbvio que não ia funcionar...

 

Eu simplesmente coloquei: $query = mysql_query("SELECT * FROM usuarios WHERE username='$username'");

 

Essa variavel $username não estava atribuida a nada...

 

Não sei se foi isso que o amigo de cima quiz dizer... mas agora deu certo... olhem como ficou!!

 

pagina_teste.php

<?php
include "validacao.inc";
include "conecta_mysql.inc";

$username = $_SESSION['nome_usuario'];

$query = mysql_query("SELECT * FROM usuarios WHERE username='$username'");
$arr = mysql_fetch_array($query);
$user_admin = $arr['tipo'];

if($user_admin != "administrador"){

echo "Somente administradores possuem acesso a esta área.";


}
else {

echo "<html><body>";
echo "Página restrita!!!<br>";
echo "TESTE!!!<br>";
echo "<p><a href=\"logout.php\">LOGOUT</a></p>";
echo "<br>";
echo "<p><a href=\"altera.php\">ALTERAR SENHA</a></p>";
echo "<br>";
echo "<p><a href=\"pagina_inicial.php\">PÁGINA INICIAL</a></p>";
echo "</body></html>";

}

?>

Foi só acrescentar a linha $username = $_SESSION['nome_usuario']; que funcionou... muito obrigado aos amigos do fórum que mais uma vez me ajudaram...

 

Eu só tenho mais uma dúvida... sempre que eu for deixar uma pagina restrita somente para administradores vou ter que usar esse "monte de echos" na pagina??

 

Não tem um jeito mais facil??

 

Bom... de qualquer forma muito obrigado a todos!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

joga tudo em um echo só

 

echo "<html><body>
Página restrita!!!<br>
TESTE!!!<br>
<p><a href=\"logout.php\">LOGOUT</a></p>
<br>
<p><a href=\"altera.php\">ALTERAR SENHA</a></p>
<br>
<p><a href=\"pagina_inicial.php\">PÁGINA INICIAL</a></p>
</body></html>";

e coloca em uma pagina a parte ai voce faz o include... pq imagina se você tiver 30 paginas restritas e tiver que mudar a mensagem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa... valeu ai Rodrigo...

 

Mas olha só... esses dias postei algumas duvidas aqui... e me responderam aqui no fórum mesmo que eu não deveria usar arquivos ".INC" pois eles não seriam seguros!!!

 

Eu achava até que ia tirar essas includes que tem aí nos codigos...

 

Eles tem realmente problemas de segurança???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Po valeu ai... obrigado a todos que ajudaram... ao Renato que postou o código... e depois o Rodrigo ai que me ajudou bastante...

 

Vou ler sobre as includes ai pra ver qual a melhor forma de usar...

 

Obrigado mesmo ai!!!

 

Qualquer duvida eu volto a postar!!! As minhas duvidas ate o momento foram resolvidas!!!

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.