Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Galera....
Estou com um probleminha aqui, estou tentando aprender sozinho fuçando e testando mas não está saindo, tenho o seguinte sistema de login que funciona blzinha, mas queria atualizar ele para funcionar com nível de acesso.
Esse é o index.php, a página de Login
<?php include('config.php');?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN "
"[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd.">](http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd.)
<html dir="ltr" xml:lang="pt-br" lang="pt-br" xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<title>Clã Boleiros de Elite | Administração do Site!!!</title>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<link href="css.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/login.js"></script>
<script type="text/javascript" src="js/geral.js"></script>
</head>
<body>
<div id="titulo" class="box">Área Restrita</div>
<div id="texto" class="box">
<div id="txt">Bem Vindo! Preencha os campos abaixo para acessar a área administrativa.</div>
<div id="txtload"></div>
<div id="txt0" class="txt"><?php echo $msg[0]; ?></div>
<div id="txt1" class="txt"><?php echo $msg[1][0]; ?></div>
<div id="txt2" class="txt"><?php echo $msg[2][0]; ?> <span id="tempo"></span></div>
<div id="txt3" class="txt"><?php echo $msg[3]; ?></div>
<div id="txt4" class="txt"><?php echo $msg[4]; ?></div>
</div>
<div id="form" class="box">
<form method="post" name="login">
<label for="usuario">Usuario:</label><input type="text" name="usuario" id="usuario" /><br/>
<label for="senha">Senha:</label><input type="password" name="senha" id="senha" /><br/>
<input type="hidden" value="<?php echo P_INDEX; ?>" id="p_index" name="redirect"/>
<input type="hidden" value="<?php echo E_INDEX; ?>" id="e_index" name="redirect"/>
<input type="button" value="Entrar" id="submit" name="enviar"/><br/>
</form>
</div>
</body>
</html>
Essa é a func_login.php
<?php
$data='';
// Pega as configuracoes
include('config.php');
// Funcao para conectar
Function ConectaMysql(){
$conecta = mysql_connect(M_HOST,M_USUARIO,M_SENHA) or exit();
$banco = mysql_select_db(M_BD,$conecta) or exit();
mysql_errno()==0 ? $r=true : $r=false;
return $r;
}
// Funcao para filtrar (Anti-SQL-Injection)
Function Filtrar($str){
$sql = preg_replace(sql_regcase('/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/'),'',$str);
$sql = trim($str);
$sql = strip_tags($str);
$sql = addslashes($str);
return $str;
}
// Pega as variaveis e checa-as
if( $_SERVER['REQUEST_METHOD'] == 'POST' ){
$usuario = Filtrar($_POST['usuario']);
$senha = Filtrar($_POST['senha']);
$usuario=='' ? $data='0' : '';
$senha=='' ? $data='0' : '';
// Checa se o usuario existe(seguranca), efetua login
if($data==''){
if(ConectaMySQL()){
$pesquisa = mysql_query("SELECT * FROM admin WHERE usuario='".$usuario."';");
if($pesquisa and mysql_num_rows($pesquisa)>0 and mysql_errno()==0){
$loga = mysql_query("SELECT * FROM admin WHERE usuario='".$usuario."' and senha='".$senha."';");
if($loga and mysql_num_rows($loga)>0 and mysql_errno()==0){
setcookie(md5('logincookie75'),md5('5ATIVADO6'),time()+3600*TEMPO_COOKIE,'/');
$data = '2'; // sei que é aqui que tenho que implementar algo, mas não estou conseguindo, nesse caso teria que //retornar o $data = '4';
}else{$data='1';}
}else{$data='1';}
mysql_close();
}else{$data='3';}
}
}
// Retorna a data final
echo $data;
?>
E essa última é login.js
/ Script de Login AJAX /
$(document).ready(function(){
/* Muda o titulo da pagina */
document.title = document.title+' Login';
/* Muda o background do titulo */
$('#titulo').css({
'background-image':'url(img/cadeado.gif)',
'background-position':'0px 5px'
});
$('#submit').click(function(){
/* Pega as informacoes nos inputs */
var v_usuario = $('#usuario').val();
var v_senha = $('#senha').val();
var p_index = $('input#p_index').val();
var e_index = $('input#e_index').val();
/* Manda para o servidor */
$.post('func_login.php',{ usuario:v_usuario, senha:v_senha},
/* Lê o resultado e escreve na tela */
function(data){
if(data=='0'){hideall();$('#txt0').show('slow');$('#form').show();}
if(data=='1'){hideall();$('#txt1').show('slow');$('#form').show();}
if(data=='2'){hideall();$('#txt2').show('slow');contador(5,p_index);}
if(data=='3'){hideall();$('#txt3').show('slow');$('#form').show();}
if(data=='4'){hideall();$('#txt2').show('slow');contador(5,e_index);}
}
);
});
});
Tem esse mascara .js ainda que é só para efeitos.
/ Contador Regressivo /
function contador(segundos,pagina){
contador1 = setTimeout('redireciona(\''+pagina+'\')', segundos*1000);
atualiza(segundos);
}
function atualiza(segundos){
if(segundos>0){
$('#tempo').html(segundos);
segundos = segundos-1;
contador2 = setTimeout('atualiza(\''+segundos+'\')', 1000);
}
}
function redireciona(pagina){
window.location = pagina;
}
/ Esconde todas as DIVs /
function hideall(){
$('#txtload').hide();
$('#txt0').hide();
$('#txt1').hide();
$('#txt2').hide();
$('#txt3').hide();
$('#txt4').hide();
}
/ GIF de Carregamento /
$(document).ready(function(){
hideall();
$('#txt2').ajaxStart(function(){
hideall();
$('#txtload').show();
$('#txt').hide();
$('#form').hide();
});
$('#txt2').ajaxStop(function(){
hideall();
});
});
Edit: esqueci do config.php
<?php
// MySQL
define('M_USUARIO','root'); // Usuario do MySQL
define('M_SENHA',''); // Senha do MySQL
define('M_HOST','localhost'); // Host do MySQL
define('M_BD','equipes'); // Nome do banco de dados
// Configuracoes Login
define('USA_MD5','1'); // Usar encriptacao MD5 (0=NAO) (1=SIM)
define('TEMPO_COOKIE','24'); // Tempo de duracao do cookie (1=UMA HORA)
define('P_INDEX','painel.php'); // Pagina protegida que sera acessada apos o login
define('E_INDEX','editor.php'); // Pagina protegida que sera acessada apos o login
// Configuracoes Cadastro
define('MIN_USUARIO',4); // Minimo de caracteres
define('MAX_USUARIO',32); // Maximo de caracteres (MAX=32)
define('MIN_SENHA',4); // Minimo de caracteres
define('MAX_SENHA',32); // Maximo de caracteres (MAX=32)
// Mensagens
$msg[0] = 'Preencha todos os campos.'; // Campos nulos (Login,Cadastro)
$msg[1][0] = 'Usuário ou senha não correspondem.'; // Erro nas informacoes (Login)
$msg[2][0] = 'Login efetuado! Aguarde...'; // Sucesso (Login)
$msg[4][0] = 'Login efetuado! Aguarde...'; // Sucesso (Login)
$msg[3] = 'Erro do sistema, tente outra hora!'; // Erro (MySQL,Query) (Login,Cadastro)
$dbHost = "localhost";
$dbUser = "root";
$dbPass = "";
$dbName = "equipes";
$dbConexao = mysql_connect($dbHost,$dbUser,$dbPass);
if(!$dbConexao) {
echo utf8_encode("<span style=\"font-family: verdana; font-size: 12px; color: #FF0000;\"><b>Erro</b> na conexão com o banco...</span><br>").mysql_error();
exit;
}
$dbSelect = mysql_select_db($dbName);
if(!$dbSelect) {
echo utf8_encode("<span style=\"font-family: verdana; font-size: 12px; color: #FF0000;\"><b>Erro</b> na seleção do banco...</span><br>").mysql_error();
exit;
}
function mysqlexecuta($dbConexao,$sql,$erro=1) {
if (empty($sql) OR !($dbConexao))
return 0;
if (!($res=@mysql_query($sql, $dbConexao))) {
if($erro)
echo "Ocorreu um erro na execução do comando SQL no BD.";
exit;
}
return $res;
}
?>Opa...
Vlw ell_cpu, mto obrigado mesmo... apanhei um pouquinho ainda para fazer funcionar, mas deu certo, tive que incluir na consulta ao banco de dados para ele recuperar o nivel.
Ficou assim
if($data==''){
if(ConectaMySQL()){
$pesquisa = mysql_query("SELECT * FROM admin WHERE usuario='".$usuario."';");
if($pesquisa and mysql_num_rows($pesquisa)>0 and mysql_errno()==0){
$loga = mysql_query("SELECT `nivel` FROM admin WHERE usuario='".$usuario."' and senha='".$senha."';");
if($loga and mysql_num_rows($loga)>0 and mysql_errno()==0){
setcookie(md5('logincookie75'),md5('5ATIVADO6'),time()+3600*TEMPO_COOKIE,'/');
session_start();
$_SESSION['login'] = $usuario;
$_SESSION['senha'] = $senha;
list($nivel) = mysql_fetch_array($loga); $_SESSION['nivel'] = $nivel;
if($_SESSION['nivel'] == "Admin"){
$data = '2';
}elseif($_SESSION['nivel'] == "Editor"){
$data = '4';
}
}else{$data='1';}
}else{$data='1';}
mysql_close();
}else{$data='3';}
}
}
Basta você criar uma sessão com o nivel do usuario.
Ex.:
//Aqui estou levando em conta q você tem um campo chamado nivel_acesso na sua tabela admin
//coloca os dados nas variaveis
//Aqui estou levando em conta q você tem um campo chamado nivel_acesso na sua tabela admin
//coloca os dados nas variaveis