Jump to content


Photo

Criar Nível De Usuários Em Sistema De Login


  • Faça o login para participar
4 replies to this topic

#1 vS*

vS*

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 25/06/2007, 22:33

Olá, fiz o sistema de login que vi aqui no forum mesmo em tutoriais.
link

gostaria de saber como fazer um nivel de usuarios no sistema.

criei um novo campo no banco "nivel", com 1 e 2.

o usuario com nivel 1 tera acesso total, como fazer para o usuario com nivel 2 ter acesso somente a determinadas páginas?/

valews!

#2 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 25/06/2007, 22:43

Você precisa adicionar uma linha na página onde deseja bloquear acesso ao usuários com nível 1
<?php if( $nivel == 1 ){ header("location: pagina_permitida.php"); } ?>
Pode-se também trocar o header() por um echo e adicionar um texto para o usuário.

Falopa!

#3 vS*

vS*

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 25/06/2007, 23:45

Olá, hostdesigner valews, mas não deu certo aqui...
seria só colocar está linha na página onde o usuário não é permitido acessar?

não teria que fazer um select para pegar os dados da variável $nivel?

só adicionando está linha não funciona...

mas valews!
falows

#4 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 26/06/2007, 14:29

Claro que precisa, eu apenas exemplifiquei como ficaria, fazendo da forma que fiz apenas está sendo verificado se o valor de $nivel é idêntico a 1, por este motivo não funcionou.

No momento do login resgate o valor de nível e adicione a uma session ou constante, mas, lembre-se a variável nível eu coloquei apenas para exemplo, poderia ser qualquer outra coisa.

Falopa!

#5 chlins

chlins

    Novato no fórum

  • Usuários
  • 9 posts

Posted 07/04/2011, 06:48

Pessoal,
Tenho este login feito pelo DW e gostaria de refazê-lo sem os excessos do DW.
Ele faz o login por nível de usuário: cliente e admin.
Como ficaria este código se fosse feito na mão, de forma segura e otimizada?

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['user_login'])) {
  $loginUsername=$_POST['user_login'];
  $password=md5($_POST['password']);
  $MM_fldUserAuthorization = "usuarioNivel";
  $MM_redirectLoginSuccess = "?page_id=92";
  $MM_redirectLoginFailed = "";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_login_cliente, $login_cliente);
  	
  $LoginRS__query=sprintf("SELECT email, senha, usuarioNivel FROM ev_clientes WHERE email=%s AND senha=%s",
  GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 
   
  $LoginRS = mysql_query($LoginRS__query, $login_cliente) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
    
    $loginStrGroup  = mysql_result($LoginRS,0,'usuarioNivel');
    
	if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;	      

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq