Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hewitt

Problema com condições e sessoões!

Recommended Posts

Galera, boa tarde! Tenho o seguinte código:

<?
include 'init.php';
include 'func.php';

if (isset($_POST['logar'])){
    $userP = $_POST['txt_usuario'];
    $senhaP = md5($_POST['txt_senha']);
    $ip = $_SERVER['REMOTE_ADDR'];
    $token = md5(gera_token(64));
    
    $sql = mysql_query("SELECT * FROM admins where usuario = '$userP' AND senha = '$senhaP'");
    $contagem = mysql_num_rows($sql);
    
    if ($contagem > 0){
        
        $_SESSION['login'] = $userP;
        $_SESSION['pass'] = $senhaP;
        $_SESSION['token'] = $token;
        $_SESSION['ip'] = $ip;
        
        
            $sql2 = mysql_query ("SELECT * FROM sessao WHERE user_sessao = '$userP'");
            $contagem2 = mysql_num_rows($sql);
        
                if ($contagem2 > 0){
                    echo("<script type='text/javascript'> alert('Já existe uma pessoa logada com esse usuário!'); 
location.href='index.html';</script>");
                }else{
            $sql3 = mysql_query("INSERT INTO sessao (user_sessao, token_sessao, ip) VALUES ('$userP', '$token', '$ip')");
        echo("<script type='text/javascript'> alert('Logado com Sucesso!'
); location.href='painel.php';</script>");
                }
        
            }else{
    
    unset ($_SESSION['login']);
    unset ($_SESSION['password']);
    unset ($_SESSION['token']);
    unset ($_SESSION['ip']);
    echo("<script type='text/javascript'> alert('Dados não conferem!'); location.href='index.html';</script>");
            }

        
}
?>

O que acontece é o seguinte: ele confere os dados, se for certo, ele confere se há algum cadastro na tabela de sessão... se não houver, ele loga. Se houver, ele avisa que já tem alguém logado com esse usuário.

 

Só que, quando ele confere os dados, ele já avisa que já possui uma pessoa logada com o usuário, mesmo a tabela sessão está zerada.

 

Já procurei o erro e não consegui encontrar. Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Hewitt

 

Você está verificando os resultados da primeira consulta, e não da segunda.

$sql2 = mysql_query ("SELECT * FROM sessao WHERE user_sessao = '$userP'");
$contagem2 = mysql_num_rows($sql); // <-- O correto seria verificar a consulta 2 ($sql2)

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

@Hewitt

 

Você está verificando os resultados da primeira consulta, e não da segunda.

$sql2 = mysql_query ("SELECT * FROM sessao WHERE user_sessao = '$userP'");
$contagem2 = mysql_num_rows($sql); // <-- O correto seria verificar a consulta 2 ($sql2)

Rapaz, que erro bobo! Fiz essa parte por último, e foi uma falta de atenção mesmo!

 

Muito obrigado, funcionou perfeitamente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.