Ir para conteúdo

POWERED BY:

Arquivado

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

manoaj

verificar usuario logado

Recommended Posts

pessoal eu escrevi um codigo pra verificar se o usuario esta logado caso ela não esteja o codigo redireciona ele para pagina de login e eu coloquei esse codigo em todas as paginas como metodo de segurança mas eu preciso implementar este codigo para que alem de verificar se o usuario esta logado eu quero que ele verifique o nivel do usuario que ta logado e caso o usuario não tenha o nivel que é necessario ele não pode ver a pagina ,

 

só que não sei como implementar mais esta verificação no codigo

 

<?php
     session_start();
       if(isset($_GET['acao']) && $_GET['acao'] == 'sair'):
               unset($_SESSION['email']);
               unset($_SESSION['senha']);
               session_destroy();
       endif;

 if(!isset($_SESSION['email']) && !isset($_SESSION['senha'])):
 header("location:login.php");

 endif;

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Traz o nível de usuário em sessão também , então :

 

// 1 = nível de administrador
if ($_SESSION['par_status'] != "1") {
   unset($_SESSION);
   header("location:restrito.php");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

como assim cara não intendi se eu traser o nivel em session so nao vai da certo!

Login

<?php

  if(isset($_POST['acao']) && $_POST['acao']== 'login'):

   $email = trim($_POST['email']);
   $senha = base64_encode(pack('H*', sha1($_POST['senha'])));

   if(empty($email)):
	   echo '<script>alert("O campo E-mail é obrigatorio!")</script>';
	    echo '<script>history.back()</script>';
		exit;

		elseif(empty($senha)):
		echo '<script>alert("O campo Senha é obrigatorio!")</script>';
	    echo '<script>history.back()</script>';
		exit;

		else:

		$email = (!get_magic_quotes_gpc()) ? addslashes($email) : $email;
		$senha = (!get_magic_quotes_gpc()) ? addslashes($senha) : $senha;
		$senha = base64_encode(pack('H*', sha1($_POST['senha'])));
               require("../connections/conexao.php");

               $sql = "SELECT * FROM users WHERE email = '$email' AND senha = '$senha' AND nivel = 'admin'";
               $qr = mysql_query($sql) or die(mysql_error());

                   if(mysql_num_rows($qr) == 0):
                       echo '<script>alert("Email e/ou Senha invalida")</script>';
                       echo '<script>history.back()</script>';
                       exit;
                   else:
                       session_start();
                       $_SESSION['email'] = $email;
                       $_SESSION['senha'] = $senha;
                       header("location:index.php");
                   endif;

           endif;

       endif;
?>
<?php include('../connections/conexao.php'); ?>
<?php include('../functions/theme_select.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
<link href="css/login.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="wrap">
 <div id="content-wrap">
   <h1><img src="images/locked.png" width="40" height="40" /> - Admin Panel</h1>
   <div id="content">
     <form action="" method="post" name="login_form">
       <div class="block">
         <label for="user">E-mail:</label>
         <input name="email" type="text" class="inputbox" id="email"  size="25" />
       </div>
       <div class="block">
         <label for="password">Senha:</label>
         <input name="senha" type="password" class="inputbox" id="senha"  size="25" />
       </div>
       <div class="block" style="text-align:right;margin:0">
       <input type="hidden" name="acao" value="login" />
         <input name="entrar" type="submit" class="button" value="Entrar" id="entrar" />
       </div>
     </form>
     <div><a href="../index.php">‹‹Voltar para o site</a></div>
   </div>
 </div>
</div>
<div id="message-box"></div> 
<?php include('includes/footer.php'); ?>
</body>
</html>

 

 

Verifica

<?php
     session_start();
       if(isset($_GET['acao']) && $_GET['acao'] == 'sair'):
               unset($_SESSION['email']);
               unset($_SESSION['senha']);
               session_destroy();
       endif;

 if(!isset($_SESSION['email']) && !isset($_SESSION['senha'])):
 header("location:login.php");

 endif;

?>

 

se eu implementar o nivel so no codigo que verifica nao vai funcionar testei aqui de varias formas maso num funciono :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então , você tem um campo no banco de dados na tabela usuário de nível de usuário . Quando você faz a seleção no banco de dados para fazer a autenticação , você traz junto o nível de usuário . Vamos supor que o nível de usuário é 0 e adm 1 . Então , você faz a seleção trazendo o campo do banco e passa pra sessão junto com o nome , e-mail , depois é só comparar .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então , você tem um campo no banco de dados na tabela usuário de nível de usuário . Quando você faz a seleção no banco de dados para fazer a autenticação , você traz junto o nível de usuário . Vamos supor que o nível de usuário é 0 e adm 1 . Então , você faz a seleção trazendo o campo do banco e passa pra sessão junto com o nome , e-mail , depois é só comparar .

eu so novo no negocio mas to entendendo a logica mas no caso ali eu ja fiz um select na pagina do login onde faz as comparações do usuario que esta logando

$sql = "SELECT * FROM users WHERE email = '$email' AND senha = '$senha' AND nivel = 'admin'";

ai no caso esse compara com os dados que estao sendo informados e se o usuario que ta tentando logar tem o nivel certo no caso admin

então eu vo ter que faser outro select no codigo restrito e comparar ou devo armazenar de laguma forma o nivel do user em uma session assim como o email e senha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Armazena o nível do user em uma session , dae é só você usar a session nas páginas que deseja comparar o nível. Da mesma maneira que você faz com o email , nome e etc

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu fiz assim mas não funcionou sabe me diser o que ta errado , ai no caso nao deu pra logar com nenhum

 

login

<?php

     session_start();
       if(isset($_GET['acao']) && $_GET['acao'] == 'sair'){
               unset($_SESSION['email']);
               unset($_SESSION['senha']);
               session_destroy();
       }

$nivel_necessario = 'admin';

// Verifica se não há a variável da sessão que identifica o usuário
if(!isset($_SESSION['email']) OR ($_SESSION['UsuarioNivel'] < $nivel_necessario)) { 
header("location:login.php");

}

?>

 

<?php

  if(isset($_POST['acao']) && $_POST['acao']== 'login'):

   $email = trim($_POST['email']);
   $senha = base64_encode(pack('H*', sha1($_POST['senha'])));

   if(empty($email)):
	   echo '<script>alert("O campo E-mail é obrigatorio!")</script>';
	    echo '<script>history.back()</script>';
		exit;

		elseif(empty($senha)):
		echo '<script>alert("O campo Senha é obrigatorio!")</script>';
	    echo '<script>history.back()</script>';
		exit;

		else:

		$email = (!get_magic_quotes_gpc()) ? addslashes($email) : $email;
		$senha = (!get_magic_quotes_gpc()) ? addslashes($senha) : $senha;
		$senha = base64_encode(pack('H*', sha1($_POST['senha'])));
               require("../connections/conexao.php");

               $sql = "SELECT * FROM users WHERE email = '$email' AND senha = '$senha' AND nivel = 'admin'";
               $qr = mysql_query($sql) or die(mysql_error());

                   if(mysql_num_rows($qr) == 0):
                       echo '<script>alert("Email e/ou Senha invalida")</script>';
                       echo '<script>history.back()</script>';
                       exit;
                   else:
                       session_start();
                       $_SESSION['email'] = $email;
                       $_SESSION['senha'] = $senha;
					$_SESSION['UsuarioNivel'] = $resultado['nivel'];                  
                       header("location:index.php");
                   endif;

           endif;

       endif;
?>
<?php include('../connections/conexao.php'); ?>
<?php include('../functions/theme_select.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
<link href="css/login.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="wrap">
 <div id="content-wrap">
   <h1><img src="images/locked.png" width="40" height="40" /> - Admin Panel</h1>
   <div id="content">
     <form action="" method="post" name="login_form">
       <div class="block">
         <label for="user">E-mail:</label>
         <input name="email" type="text" class="inputbox" id="email"  size="25" />
       </div>
       <div class="block">
         <label for="password">Senha:</label>
         <input name="senha" type="password" class="inputbox" id="senha"  size="25" />
       </div>
       <div class="block" style="text-align:right;margin:0">
       <input type="hidden" name="acao" value="login" />
         <input name="entrar" type="submit" class="button" value="Entrar" id="entrar" />
       </div>
     </form>
     <div><a href="../index.php">‹‹Voltar para o site</a></div>
   </div>
 </div>
</div>
<div id="message-box"></div> 
<?php include('includes/footer.php'); ?>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tu programa esquisito mais tenta assim mano espero que ajude

 

 

<?php

  if(isset($_POST['acao']) && $_POST['acao']== 'login'):

          $email = trim($_POST['email']);
          $senha = base64_encode(pack('H*', sha1($_POST['senha'])));

          if(empty($email)):
                  echo '<script>alert("O campo E-mail é obrigatorio!")</script>';
                   echo '<script>history.back()</script>';
                       exit;

                       elseif(empty($senha)):
                       echo '<script>alert("O campo Senha é obrigatorio!")</script>';
                   echo '<script>history.back()</script>';
                       exit;

                       else:

                       $email = (!get_magic_quotes_gpc()) ? addslashes($email) : $email;
                       $senha = (!get_magic_quotes_gpc()) ? addslashes($senha) : $senha;
                       $senha = base64_encode(pack('H*', sha1($_POST['senha'])));
               require("../connections/conexao.php");

               $sql = "SELECT * FROM users WHERE email = '$email' AND senha = '$senha' AND nivel = 'admin'";
               $qr = mysql_query($sql) or die(mysql_error());

                   if(mysql_num_rows($qr) == 0):
                       echo '<script>alert("Email e/ou Senha invalida")</script>';
                       echo '<script>history.back()</script>';
                       exit;
                   else:
				   if ($qr['nivel']!="admin"):
				    header("location:index.php");
			     else:
				            session_start();
                       $_SESSION['email'] = $email;
                       $_SESSION['senha'] = $senha;
                                               $_SESSION['UsuarioNivel'] = $resultado['nivel'];                  
                       header("location:index.php");
                   endif;

           endif;
endif;
       endif;
?>
<?php include('../connections/conexao.php'); ?>
<?php include('../functions/theme_select.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
<link href="css/login.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="wrap">
 <div id="content-wrap">
   <h1><img src="images/locked.png" width="40" height="40" /> - Admin Panel</h1>
   <div id="content">
     <form action="" method="post" name="login_form">
       <div class="block">
         <label for="user">E-mail:</label>
         <input name="email" type="text" class="inputbox" id="email"  size="25" />
       </div>
       <div class="block">
         <label for="password">Senha:</label>
         <input name="senha" type="password" class="inputbox" id="senha"  size="25" />
       </div>
       <div class="block" style="text-align:right;margin:0">
       <input type="hidden" name="acao" value="login" />
         <input name="entrar" type="submit" class="button" value="Entrar" id="entrar" />
       </div>
     </form>
     <div><a href="../index.php">‹‹Voltar para o site</a></div>
   </div>
 </div>
</div>
<div id="message-box"></div> 
<?php include('includes/footer.php'); ?>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tu programa esquisito mais tenta assim mano espero que ajude

 

 

<?php

  if(isset($_POST['acao']) && $_POST['acao']== 'login'):

          $email = trim($_POST['email']);
          $senha = base64_encode(pack('H*', sha1($_POST['senha'])));

          if(empty($email)):
                  echo '<script>alert("O campo E-mail é obrigatorio!")</script>';
                   echo '<script>history.back()</script>';
                       exit;

                       elseif(empty($senha)):
                       echo '<script>alert("O campo Senha é obrigatorio!")</script>';
                   echo '<script>history.back()</script>';
                       exit;

                       else:

                       $email = (!get_magic_quotes_gpc()) ? addslashes($email) : $email;
                       $senha = (!get_magic_quotes_gpc()) ? addslashes($senha) : $senha;
                       $senha = base64_encode(pack('H*', sha1($_POST['senha'])));
               require("../connections/conexao.php");

               $sql = "SELECT * FROM users WHERE email = '$email' AND senha = '$senha' AND nivel = 'admin'";
               $qr = mysql_query($sql) or die(mysql_error());

                   if(mysql_num_rows($qr) == 0):
                       echo '<script>alert("Email e/ou Senha invalida")</script>';
                       echo '<script>history.back()</script>';
                       exit;
                   else:
				   if ($qr['nivel']!="admin"):
				    header("location:index.php");
			     else:
				            session_start();
                       $_SESSION['email'] = $email;
                       $_SESSION['senha'] = $senha;
                                               $_SESSION['UsuarioNivel'] = $resultado['nivel'];                  
                       header("location:index.php");
                   endif;

           endif;
endif;
       endif;
?>
<?php include('../connections/conexao.php'); ?>
<?php include('../functions/theme_select.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
<link href="css/login.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="wrap">
 <div id="content-wrap">
   <h1><img src="images/locked.png" width="40" height="40" /> - Admin Panel</h1>
   <div id="content">
     <form action="" method="post" name="login_form">
       <div class="block">
         <label for="user">E-mail:</label>
         <input name="email" type="text" class="inputbox" id="email"  size="25" />
       </div>
       <div class="block">
         <label for="password">Senha:</label>
         <input name="senha" type="password" class="inputbox" id="senha"  size="25" />
       </div>
       <div class="block" style="text-align:right;margin:0">
       <input type="hidden" name="acao" value="login" />
         <input name="entrar" type="submit" class="button" value="Entrar" id="entrar" />
       </div>
     </form>
     <div><a href="../index.php">‹‹Voltar para o site</a></div>
   </div>
 </div>
</div>
<div id="message-box"></div> 
<?php include('includes/footer.php'); ?>
</body>
</html>

Funciono não mano continua não entrando :/ esse negocio ta tenso

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.