manoaj 12 Denunciar post Postado Outubro 20, 2012 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
Matheus Lucca Carmo 13 Denunciar post Postado Outubro 20, 2012 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
manoaj 12 Denunciar post Postado Outubro 20, 2012 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
Matheus Lucca Carmo 13 Denunciar post Postado Outubro 20, 2012 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
manoaj 12 Denunciar post Postado Outubro 20, 2012 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
Matheus Lucca Carmo 13 Denunciar post Postado Outubro 21, 2012 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
manoaj 12 Denunciar post Postado Outubro 21, 2012 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
Marcos_imasters 288 Denunciar post Postado Outubro 21, 2012 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
manoaj 12 Denunciar post Postado Outubro 21, 2012 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
Marcos_imasters 288 Denunciar post Postado Outubro 21, 2012 mano tem msn? se tiver add eu ai marcoswebmaster@hotmail.com Compartilhar este post Link para o post Compartilhar em outros sites
manoaj 12 Denunciar post Postado Outubro 21, 2012 ta adciionado Compartilhar este post Link para o post Compartilhar em outros sites