Ir para conteúdo
Fórum Script Brasil
  • 0

sistema de login com niveis de permissao


Cédrick

Pergunta

e ae pessoal!?

estou criando um sistema de login com niveis de permissao....existirão 3 niveis:

0= membro comum

1= colunista

2= administrador..

consegui fazer o cadastro normal no banco de dados......o action do formulario de cadastro e as tabelas são o seguinte:

CREATE TABLE usuarios (
  id int(5) unsigned zerofill NOT NULL auto_increment,
  nome varchar(100) NOT NULL default '',
  sobrenome varchar(100) NOT NULL default '',
  email varchar(100) NOT NULL default '',
  login varchar(25) NOT NULL default '',
  senha varchar(32) NOT NULL default '',
  nivel int(1) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;
<?php
include "config.php";

$db   = mysql_connect ($host, $login_db, $senha_db);
$basedados      =       mysql_select_db($database);

$pesquisar = mysql_query("SELECT * FROM `usuarios` WHERE login = '$login'", $db);
$contagem = mysql_num_rows($pesquisar);

if ( $contagem == 1 ) {  $errors .= "<b><font color='#b82a2d' size='1' face='Verdana'>Login escolhido já cadastrado!</font></b><br>";  
}
if ( $login == "" ) {  $errors .= "<b><font color='#b82a2d' size='1' face='Verdana'>Você não digitou um login!</font></b><br>";  
}
if ( $senha == "" ) {  $errors .= "<b><font color='#b82a2d' size='1' face='Verdana'>Você não digitou uma senha!</font></b><br>";  
}
if ( $senha != $senha2 ) {  $errors .= "<p><b><font color='#b82a2d' size='1' face='Verdana'>Você digitou duas senhas diferentes!</font></b></p><br>";  
}  
if ( $errors == "" ) { 

$codificada = md5($senha);
  
$cadastrar = mysql_query("INSERT INTO `usuarios` (nome, sobrenome, login, senha, email) VALUES ('$nome','$sobrenome','$login','$codificada','$email')", $db);        
if ( $cadastrar == 1 ) {          

echo "<p><b><font color='#b82a2d' size='1' face='Verdana'>Cadastro efetuado com 
sucesso!</font></b></p>";         
} else {         
echo "<p><b><font color='#b82a2d' size='1' face='Verdana'>Ocorreu um erro no servidor ao tentar se cadastrar!</font></b></p>
<br>";  
}  } else {        
echo "<p><b><font color='#b82a2d' size='1' face='Verdana'>Ocorreu os seguintes erros ao tentar se cadastrar:<br>$errors</font></b></p>
";
  
}

?>

agora estou com uma duvida....

na hora do login..eu consegui fazer procurando por usuario e senha no mysql.....mas como o usuario não tera acesso aos niveis....uqero saber como acho o nivel de cada usuario automaticamente.....

por exemplo:

se o usuario for admin ele será enviado para a administração.......se ele for colunista...ele será enviado para o ste, mas terá acesso a administração.......e se o usuario for membro....ele irá ficar somente no site....mas eu queria fazer apenas um formulario de login e um "verifica"........o verifica incluindo os 3 niveis......

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

No momento do login verifica o nivel...

<?php
/*
conecta...
*/

$nome = ....
$senha = ...

$sql = mysql_query("SELECT * FROM tabela WHERE usuario = '$nome' AND senha = '$senha'");

if(mysql_num_rows($sql) == '0'){
echo 'erro';
}else{

$dados = mysql_fetch_assoc($sql);
if($dados['nivel'] == '0'){

}elseif($dados['nivel'] == '1'){

}else{

}
?>

Claro, ai tem que criar as sessões e etc...

Link para o comentário
Compartilhar em outros sites

  • 0

engraçado que pra fazer teste peguei seu codigo praticamente puro....

<?php
include "config.php";

$login = $_POST['login'];
$senha = $_POST['senha'];
$codificada = md5($senha);

$sql = mysql_query("SELECT * FROM usuarios WHERE login = '$login' AND senha = '$codificada'");

if(mysql_num_rows($sql) == '0'){
echo 'erro';
}else{

$dados = mysql_fetch_assoc($sql);
if($dados['nivel'] == '0'){

}elseif($dados['nivel'] == '1'){

}else{

?>

era pra funcionar pelo menos........e deu o seguinte erro...

Parse error: parse error in c:\apache\htdocs\portal\validacao.php on line 21

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade o script eu passei apenas para você ler e entender a lógica, não para copiar, está faltando fechar duas chaves... ou seja:

<?php
include "config.php";

$login = $_POST['login'];
$senha = $_POST['senha'];
$codificada = md5($senha);

$sql = mysql_query("SELECT * FROM usuarios WHERE login = '$login' AND senha = '$codificada'");

if(mysql_num_rows($sql) == '0'){
echo 'erro';
}else{

$dados = mysql_fetch_assoc($sql);
if($dados['nivel'] == '0'){

}elseif($dados['nivel'] == '1'){

}else{

}
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

mas o que eu achei estranho foi q o erro tava na linha q fechava o script.....ou seja...

?>....

porque esse erro?!

e agora o login não efetua......eu cadastrei no bd.....depois na hora de logar só aparece a mensagem "erro" que foi a q você configurou pra aparecer.......

Editado por Cédrick
Link para o comentário
Compartilhar em outros sites

  • 0

então.....nesse fds tentei mexer um pocuo nele.......não mexi muito tempo quanto gostaria, mas.......na hora de logar....sempre dá o erro programado "erro"........mesmo com login e senha correto....

dá o erro configurado nesa parte:

if(mysql_num_rows($sql) == '0'){
echo 'erro';
}else{

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...