Ir para conteúdo

Arquivado

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

Rasp

[Resolvido] Erro ao utilizar login com niveis

Recommended Posts

Fala galera!

Estou tentando utilizar niveis no sistema de login que utilizo, porém não consigo implementa-lo de forma alguma... fiz testes dando echo ao logar os usuarios e todos os usuarios independente de seu nivel estavam marcando como nivel 1

Será que poderiam me ajudar?

 

Segue cod de login:

 

Abre_Conexao();
	$cnx	= mysql_query("SELECT COUNT(*) AS total FROM usuarios WHERE login = '$login' AND senha = '$senha' AND chave = '$chave'");
	$total	= mysql_result($cnx, 0, "total");
	mysql_close();
	
	if($total == 1) {
		$dados			= array();
		$dados["login_usuario"]		= ucfirst(strtolower($login));
		$dados["logado"]	= true;
		$_SESSION["dados"]	= $dados;
		header("Location: central/");
	} else {
		$retorno  = "<script type=\"text/javascript\">alert('Login ou Senha incorretos, Por favor verifique os dados digitados');</script>";
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tu estas contado o total de usuarios

SELECT COUNT(*) AS total FROM usuarios WHERE login = '$login' AND senha = '$senha' AND chave = '$chave'"

 

Só que limitando os registros ao login, senha e chave, ou seja vai retornar um registro sempre!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala terminator...

Então.. teria de usar assim?

 

$cnx	= mysql_query("SELECT * FROM usuarios WHERE login = '$login' AND senha = '$senha' AND chave = '$chave'");
$total = mysql_num_rows($cnx);

if($linhas = mysql_fetch_array($cnx) == 1) {

É isso? to perdido em como modifica-lo.

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabei de resolver cara!

fiz assim:

 

 

$cnx = mysql_query("SELECT * FROM usuarios WHERE login = '$login' AND senha = '$senha' AND chave = '$chave'");
	$total = mysql_num_rows($cnx);
	$linhas = mysql_fetch_array($cnx);
	

	if($total == 1) {
		$dados			= array();
		$dados["login_usuario"]		= ucfirst(strtolower($login));
		$dados["logado"]	= true;
		$dados["fk_nivel"] = $linhas["fk_nivel"];
		$_SESSION["dados"]	= $dados;

Agora minha dúvida é... como eu faço para limitar o menu de acordo com o nível?

Avaliando pelo nível

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rasp, se você tem niveis fixos, pode fazer algo bem simples como:

 

<?php
function permissoes($nivel){
	switch ($nivel) {
	case 1:
		$html = "menu, menu2, menu3";
		return $html;
		break;
		
	case 2:
		$html = "menu4, menu5, menu6";
		return $html;
		break;
	}
}

echo permissoes(1)
?>

Mas dá para fazer algo mais elaborado com banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então terminator...

Os niveis são cadastrados no banco de dados e faço integração de tabelas para retornar em qual nivel cada usuario esta cadastrado. A minha ideia era fazer o seguinte:

 

Atualmente uso um if para identificar se a sessão existe, caso sim mostra o menu, caso não informa uma mensagem. Queria modificar isso para que mostrasse somente um menu diferente, a pagina seria a mesma só modificando o menu, saca?

 

O if que utilizo para menu é o seguinte:

 

<?php
if(!isset($_SESSION['dados'])) {
	echo "
				<div id=\"menu-principal\">
					Este menu foi desabilitado
				</div>
		";
} else {
	$auth = isset ($_SESSION['dados']['auth']) ? $_SESSION['dados']['auth'] : 0;
	if($auth == md5(1)) {
		echo "
			<div class=\"pdmenu\">
				<ul>
					<li class=\"usuarios\"><a href=\"#\">Gerenciar Usuários</a>
						<ul>
							<li><a href=\"usuario_listar.php\">Listar Usuários</a></li>
							<li><a href=\"usuario_novo.php\">Novo Usuário</a></li>
						</ul>
					</li>
					<li class=\"materias\"><a href=\"#\">Gerenciar Matérias</a>
						<ul>
							<li><a href=\"materia_listar.php\">Listar Matérias</a></li>
							<li><a href=\"materia_nova.php\">Nova Matéria</a></li>
						</ul>
					</li>
					<li><a href=\"#\">Gerenciar Arquivos</a>
						<ul>
							<li><a href=\"arquivo_listar.php\">Listar Arquivos</a></li>
							<li><a href=\"arquivo_novo.php\">Novo Arquivo</a></li>
						</ul>
					</li>
				</ul>
			</div>
			<!--<ul id=\"menu-principal\">
				<li class=\"usuarios\"><a href=\"usuarios_listar.php\">Gerenciar Usuários</a></li>
				<li class=\"materias\"><a href=\"materias.php\">Gerenciar Matérias</a></li>
				<li class=\"arquivos\"><a href=\"arquivos.php\">Gerenciar Arquivos</a></li>
			</ul>-->
		";
	}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Terminator, como eu adapto esse exemplo que você me deu ao meu script atual? pensei em comparar derrepente

Qq você acha?

 

Valeu pela ajuda até agora cara!

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala ae galera!

Resolvi o problema... depois de bater um pouco de cabeça, resolvi fazer por comparação, e ficou muito legal. O resultado é esse:

 

<?php
if(!isset($_SESSION['dados'])) {
	echo "
				<div id=\"menu-principal\">
					Este menu foi desabilitado
				</div>
		";
} else {
	$nivel = isset($_SESSION['dados']['fk_nivel']) ? $_SESSION['dados']['fk_nivel'] : 0;
	if($nivel == 1) {
		echo "
			<div class=\"pdmenu\">
				<ul>
					<li class=\"usuarios\"><a href=\"#\">Gerenciar Usuários</a>
						<ul>
							<li><a href=\"usuario_listar.php\">Listar Usuários</a></li>
							<li><a href=\"usuario_novo.php\">Novo Usuário</a></li>
						</ul>
					</li>
					<li class=\"materias\"><a href=\"#\">Gerenciar Matérias</a>
						<ul>
							<li><a href=\"materia_listar.php\">Listar Matérias</a></li>
							<li><a href=\"materia_nova.php\">Nova Matéria</a></li>
						</ul>
					</li>
					<li><a href=\"#\">Gerenciar Arquivos</a>
						<ul>
							<li><a href=\"arquivo_listar.php\">Listar Arquivos</a></li>
							<li><a href=\"arquivo_novo.php\">Novo Arquivo</a></li>
						</ul>
					</li>
				</ul>
			</div>
		";
	} elseif($nivel == 2) {
		echo "
			<div class=\"pdmenu\">
				<ul>
					<li class=\"usuarios\"><a href=\"alterar_senha.php\">Alterar Senha</a></li>
					<li><a href=\"download_arquivos.php\">Verificar Arquivos</a></li>
					<li></li>
				</ul>
			</div>
		";
	}
}
?>

Se alguem souber e puder dar dicas de como melhorar, agradeço e valeu pela ajuda de todos!

 

Abss....

 

 

 

 

 

ps: Tópico já resolvido!

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.