Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Estou tentando fazer um uma área administrativa para um site.
Então quero fazer login do administrador ai estão os meus códigos.
Login.php
<h3>Login de acesso Administrador</h3>
<fieldset><legend> Entre com seus dados: </legend>
<center><form action="auth.php" name="autenticacao" method="post">
Login: <input type="text" name="login" size="20" maxlength="20" /><br /><br />
Senha: <input type="password" name="senha" size="20" maxlength="8" /><br /><br />
<input type="submit" value="Entrar" name="entrar" />
</form></center>
</fieldset>
auth.php
<?php
include "../conecta_banco.php";
$login = $_POST["login"];
$senha = $_POST["senha"];
$busca = "SELECT seq, nome FROM tbusuario WHERE login = '$login' AND senha = '$senha'";
$listar_busca = mysql_query($busca)
or die (mysql_error());
$num = mysql_num_rows($listar_busca);
if ($num > 0){
$linha=mysql_fetch_array($listar_busca);
$seq = $linha["seq"];
$nome = $linha["nome"];
//Inicia a sessão
session_start();
//Registra os dados do usuário na sessão
$_SESSION["seq"] = $seq;
$_SESSION["nome"] = $nome;
$_SESSION["login"] = $login;
//Redireciona para o administrador
header("location:administrador.php");
}else("location:login.php");
?>
administrador.php
<?php
include("verifica.php");
?>
<h5> Bem Vindo <b><?php echo $_SESSION['nome'] ?></b> </h5>
verifica.php
<?php
//Inicia a sessão
session_start();
//Verifica se há dados ativos na sessão
if(empty($_SESSION["id"]) || empty($_SESSION["nome"]) || empty($_SESSION["login"]))
{
//Caso não exista dados registrados, exige login
header("Location:login.php");
}
?>
Eu coloco a senha e o usuário corretos no login, mas ele nunca acessa, sempre volta para a página de login.
O que está errado neste código, este código consegue fazer o que eu quero??
Obrigado pela ajuda.
>
$busca = "SELECT seq, nome FROM tbusuario WHERE login = '$login' AND senha = '$senha'";
Verifica se a consulta esta correta e se retorna algum valor
Sim retorna.
Acho que o problema está no verifica.php.
Todos os testes que eu fiz com o auth deram certos, só que toda vez ele volta na tela de login, por isso acho que é erro no verifica.php
Cara Recomendo esse sistema de login
http://blog.thiagobelem.net/criando-um-sistema-de-login-com-php-e-mysql/
Funciona Perfeitamente... ja testei
Se Tiver alguma Duvida.. so postar ae
Antes do header para 'administrador.php', verifique se o $_session foi alimentado:
var_dump($_SESSION);
E coloque um die() para não haver redirecionamento...
Repare nessa parte:
$_SESSION["id"]
Desse trecho do codigo:
if(empty($_SESSION["id"]) || empty($_SESSION["nome"]) || empty($_SESSION["login"]))
$_SESSION["id"] nunca é declarada, portanto, sempre vai dar positivo, entao vai cair sempre em header("Location:login.php");
Não é isso?
>
Repare nessa parte:
$_SESSION["id"]
Desse trecho do codigo:
if(empty($_SESSION["id"]) || empty($_SESSION["nome"]) || empty($_SESSION["login"]))
$_SESSION["id"] nunca é declarada, portanto, sempre vai dar positivo, entao vai cair sempre em header("Location:login.php");
Não é isso?
É isso mesmo, não existe id.
Resolvido o problema aqui, Obrigado :clap: :clap:
Verifica se a consulta esta correta e se retorna algum valor