Bom dia pessoal da ScriptBrasil. Estou com um problema para fazer login, antes de mais nada eu não sou nenhum especialista to aprendendo a mecher com php estudando livros e aulas por isso meu codigo deve ser meio "FEIO" com erros absurdos, então com ajuda da galera aqui pretendo adquir novos conhecimentos e melhorar meus codigos. Mas vamos ao que interessa, minha dúvida. Abaixo vou estar postando o código porque assim fica mais facil para vocês me ajudarem. Breve descrição: Pagina Index eu verifico a Sessão se ela existe ou não, e se o post já foi enviado ou não. <?php
session_start();
include 'conexao.php';
include 'funcoes.php';
if(isset($_SESSION['login'])) #Verifico se existe a Sessão Login
{
require_once "logado.php";
}
else #Caso ela não existir eu chamo arquivo login novamente
{
require_once "login.php";
}
?>
Como podem ver eu tenho outras duas páginas, uma com formulario de login caso o administrador não estiver logado e a pagina logado aonde mostra toda area administrativa.
Abaixo mostro o formulario:
<?php
session_start();
include 'conexao.php';
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/global.css" rel="stylesheet" type="text/css" />
<title><?php echo $configSite ?></title>
</head>
<body>
<div id="site2">
<h1 class="banner">Project A3 Web Manager </h1>
<span>Página de Administração</span>
<form name="login_administrador" action="logar.php" method="post" >
<table id="tab_login">
<tr>
<td align="right">Usuario .: </td>
<td>
<input id="username" name="username" size="52" type="text" value="" class="input" />
</td>
</tr>
<tr>
<td align="right">Senha .: </td>
<td>
<input id="password" name="password" size="52" type="password" value="" class="input" />
</td>
</tr>
<tr>
<td> </td>
<td align="right">
<input type="submit" name="logar_admin" Value="Fazer Login" id="botao_logar" />
</td>
</tr>
</table>
</form>
</div>
</body>
O formulario faz toda a verificação em outra página que é a logar.php abaixo vou mostrar o código
<?php
include 'conexao.php'; // abro conexão com banco de dados
$nome_usuario = $_POST["username"]; // Pego Nome de Usuario no POST Formulario
$senha_usuario = $_POST["password"]; // Pego Senha do Usuario no POST Formulario
$sql = mysql_query("select senha from tb_pessoas where usuario = '$nome_usuario'"); // Busco no banco a senha caso exista o usuario
$cont = mysql_num_rows($sql); // Verifico se ouve retorno
while($valida = mysql_fetch_array($sql)) // Busco a senha do usuario caso o mesmo exista
{
$valida_senha = $valida['senha']; // Armazeno a senha em uma variavel
}
if(trim($nome_usuario) != '') // Verifico se não tem espaço ou esta em branco
{
if($cont == 0) // Se resultado for iqual a 0 então não tem nenhum usuario cadastrado
{
echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=/admin/'>
<script type=\"text/javascript\">
alert(\"Este usuario não existe.\");
</script>
";
}
else // caso contrario o usuario existe no banco
{
if($valida_senha != $senha_usuario) // Comparo a senha armazenada na variavel consultada no banco com a variavel que armazena o post do formulario
{
echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=/admin/'>
<script type=\"text/javascript\">
alert(\"A senha não corresponde.\");
</script>
";
}
else // se a senha for bater com nome de usuario então inicio a sessão
{
$_SESSION['login_usuario'] = $usuario;
$_SESSION['senha_usuario'] = $senha;
header('Location: /admin/');
}
}
}
else // se os campos estiverem vazio mensagem de erro
{
echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=/admin/'>
<script type=\"text/javascript\">
alert(\"Campos Login e Senha devem ser preenchidos.\");
</script>
";
}
?> Ao final disso, depois que ele validar usuario e senha ele retorna para /admin/ então ele vai mostrar a página de administração.. ou pelo menos era para fazer isso né. o que ta acontecendo é seguinte. Se eu colocar usuario errado, ele mostra mensagem de erro, se eu colocar usuario certo e a senha errada ele mostra mensagem de q a senha esta errada, se eu colocar ususario e senha corretos ele não vai para pagina "logado.php" ele fica na pagina de "login.php" que é a página do formulario sempre.