Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Peguei na internet um sistema de login em php e adequei as minhas necessidades, porém há um problema, quando se loga, ele loga e expulsa o usuario na mesma hora, na pagina restrita possui esse codigo:
<?php
include("seguranca.php"); // Inclui o arquivo com o sistema de segurança
protegePagina(); // Chama a função que protege a página
?>
e o arquivo seguranca.php:
<?php
include("../Connections/conectar.php");
mysql_select_db($database_conectar, $conectar);
// Configurações do Script
// ==============================
$_SG['conectaServidor'] = false; // Abre uma conexão com o servidor MySQL?
$_SG['abreSessao'] = false; // Inicia a sessão com um session_start()?
$_SG['caseSensitive'] = false; // Usar case-sensitive? Onde 'thiago' é diferente de 'THIAGO'
$_SG['validaSempre'] = true; // Deseja validar o usuário e a senha a cada carregamento de página?
// Evita que, ao mudar os dados do usuário no banco de dado o mesmo contiue logado.
$_SG['servidor'] = 'localhost'; // Servidor MySQL
$_SG['login'] = 'usuario'; // Usuário MySQL
$_SG['senha'] = 'senha'; // Senha MySQL
$_SG['banco'] = 'banco'; // Banco de dados MySQL
$_SG['paginaLogin'] = 'login.php'; // Página de login
$_SG['tabela'] = 'usuarios'; // Nome da tabela onde os usuários são salvos
// ==============================
// ======================================
// ~ Não edite a partir deste ponto ~
// ======================================
// Verifica se precisa fazer a conexão com o MySQL
if ($_SG['conectaServidor'] == true) {
$_SG['link'] = mysql_connect($_SG['servidor'], $_SG['login'], $_SG['senha']) or die("MySQL: Não foi possível conectar-se
ao servidor [".$_SG['servidor']."].");
mysql_select_db($_SG['banco'], $_SG['link']) or die("MySQL: Não foi possível conectar-se ao banco de dados
[".$_SG['banco']."].");
}
// Verifica se precisa iniciar a sessão
if ($_SG['abreSessao'] == true) {
session_start();
}
/**
* Função que valida um usuário e senha
*
* @param string $login - O usuário a ser validado
* @param string $senha - A senha a ser validada
*
* @return bool - Se o usuário foi validado ou não (true/false)
*/
function validalogin($login, $senha) {
global $_SG;
$cS = ($_SG['caseSensitive']) ? 'BINARY' : '';
// Usa a função addslashes para escapar as aspas
$nlogin = addslashes($login);
$nsenha = addslashes($senha);
// Monta uma consulta SQL (query) para procurar um usuário
$sql = "SELECT `id`, `nome` FROM `".$_SG['tabela']."` WHERE ".$cS." `login` = '".$nlogin."' AND ".$cS."
`senha` = '".$nsenha."' LIMIT 1";
$query = mysql_query($sql);
$resultado = mysql_fetch_assoc($query);
// Verifica se encontrou algum registro
if (empty($resultado)) {
// Nenhum registro foi encontrado => o usuário é inválido
return false;
} else {
// O registro foi encontrado => o usuário é valido
// Definimos dois valores na sessão com os dados do usuário
$_SESSION['loginID'] = $resultado['id']; // Pega o valor da coluna 'id do registro encontrado no MySQL
$_SESSION['loginNome'] = $resultado['nome']; // Pega o valor da coluna 'nome' do registro encontrado no
MySQL
// Verifica a opção se sempre validar o login
if ($_SG['validaSempre'] == true) {
// Definimos dois valores na sessão com os dados do login
$_SESSION['loginLogin'] = $login;
$_SESSION['loginSenha'] = $senha;
}
return true;
}
}
/**
* Função que protege uma página
*/
function protegePagina() {
global $_SG;
if (!isset($_SESSION['loginID']) OR !isset($_SESSION['loginNome'])) {expulsaVisitante();
} else if (!isset($_SESSION['loginID']) OR !isset($_SESSION['loginNome'])) {expulsaVisitante();
}
}
}
}
/**
* Função para expulsar um visitante
*/
function expulsaVisitante() {
global $_SG;
// Remove as variáveis da sessão (caso elas existam)
unset($_SESSION['loginID'], $_SESSION['loginNome'], $_SESSION['loginLogin'], $_SESSION['loginSenha']);
// Manda pra tela de login
echo "<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=login.php'>";
}
?>
creio eu que o erro esteja na funçao protegePagina porem ja dei uma mexidinha e nada...
ressaltando que quando se digita usuario invalido, ele nao loga, quando se digita um usuario valido, ele loga mas expulsa logo depois
andei pensando tambem e acho que ele nao ta conseguindo pegar o nome e o id pelo login e senha...
Carregando comentários...