Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Não Resgata Sessão


Marcelo Mussi

Pergunta

Boa Noite,

Estou com um problema em Login por sessão. O usuário é autenticado, válidado e gerado a sessão que autoriza o acesso. Porém o código de verificador não consegui resgatar a sessão de permite o acesso, ele não resgata a sessão, fica vazio a sessão. Segue os códigos:

login.php

<?php

    include("../config/conexao_mysql.php");
    
    if($acao == "autenticar" ) {
    
        @session_start();
        session_register('MC_AUTH');
        
            $user = $_POST['user'];
            $senha = $_POST['senha'];
            
        if($user == "" or $senha == "") { 
            
            $mensagem = 1;
            
        }
        else {
                        
            // Inicio de Verificação do Usuário
            
            $sql = "SELECT * FROM usuarios WHERE user = '$user' AND senha = '$senha'";
            
                $resultado = mysql_query($sql,$conexao);
                $linhas = mysql_num_rows($resultado);
                                
            if( $linhas != 0 )
            {
            
                $id_online = mysql_result($resultado,0,"id");
                $nome_online = mysql_result($resultado,0,"nome");
                $user_online = mysql_result($resultado,0,"user");
                $acesso_online = mysql_result($resultado,0,"painel_acesso");
                
            
                
                if( $acesso_online == "S" ) {
                
                $_SESSION['MC_AUTH'] = "Member_On";    
                
                    session_register('Id_logado');
                    $_SESSION['Id_logado'] = $id_online;
                    
                echo "&lt;script>self.location = 'index.php' </script>";
                exit;
                
                }
                else
                {
                                    
                    $mensagem = 2;
                }
                
            }
            else
            {
            
                $_SESSION['MC_AUTH'] = "Member_Off";
                
                $mensagem = 3;
            }
        }
    }

?>
verificador.php
<?php

    @session_start();
    
    if(isset($_SESSION['MC_AUTH']))
        $sessao = $_SESSION['MC_AUTH'];
    
    if ($sessao == "Member_On")
    {
        $Connect_Id = $_SESSION['Id_logado'];
        $sql = "SELECT * FROM usuarios WHERE id = '$Connect_Id'";
        $resultado = mysql_query($sql,$conexao);
            
            $user = mysql_result($resultado,0,"user");
            $nome = mysql_result($resultado,0,"nome");
            $painel_acesso = mysql_result($resultado,0,"painel_acesso");
            $painel_user = mysql_result($resultado,0,"painel_user");
            $painel_menu = mysql_result($resultado,0,"painel_menu");
            $painel_conteudo = mysql_result($resultado,0,"painel_conteudo");
            $painel_noticias = mysql_result($resultado,0,"painel_noticias");
            $painel_parceria = mysql_result($resultado,0,"painel_parceria");
            $ativo = mysql_result($resultado,0,"ativo");
    }
    else {
        
        echo "
        &lt;script>
            self.location = 'login.php'
        </script>";
        exit;
    }

?>

Editado por Marcelo Mussi
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Não estou conseguindo ainda... Na página login ele cria a sessão, mais na hora de verificar ele não acha a sessão!

Gera a sessão:

session_start();
                    
                    session_register('SWConnect');
                    $_SESSION['SWConnect'] = "UserAtivo";
Identificada a sessão:
<?php

    session_start();
    
    $SWConnect = $_SESSION['SWConnect'];
    
        if ((!isset($SWConnect)) OR ($SWConnect != "UserAtivo"))
        {
            echo "&lt;script>self.location = 'login.php'</script>";
            exit;
        }

?>

Editado por Marcelo Mussi
Link para o comentário
Compartilhar em outros sites

  • 0

Você não precisa usar session_register...

<?php
session_start();
                    
$_SESSION['SWConnect'] = "UserAtivo";
?>
<?php
    session_start();
    
    $SWConnect = $_SESSION['SWConnect'];
    
        if ((!isset($SWConnect)) OR ($SWConnect != "UserAtivo"))
        {
            echo "&lt;script>self.location = 'login.php'</script>";
            exit;
        }

?>

Isto tem que funcionar... e lembre-se, não é uma boa idéia criar variáveis com o mesmo nome de índices do array das sessões...

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpa a demora para uma resposta, estava viajando. Não sei o que ocorre, eu tirei o @ da frente e fica dando esse erro:

PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already sent by (output started at /home/starwars/public_html/adm/login.php:1) in /home/starwars/public_html/adm/login.php on line 9

PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/starwars/public_html/adm/login.php:1) in /home/starwars/public_html/adm/login.php on line 9

Link para o comentário
Compartilhar em outros sites

  • 0

Nossa, mais é muito estranho, por que a única coisa antes é

<?php
    
    include("../config/conexao_mysql.php");
    
    $acao = $_POST['acao'];
    
    if($acao == "autenticar" ) { // Autenticando
    
    session_start();

...

Link para o comentário
Compartilhar em outros sites

  • 0

Nossa, consegui.... depois de quebrar tanto a cabeça achei kkkk

Resolvi APAGAR TUDO e refazer e agora funcionou, ficou da seguinte forma:

<?php

    session_start();

    $acao = $_POST['acao'];
    
    $user = $_POST['user'];
    $senha = $_POST['senha'];
    
    if($acao == "autenticar") {
    
        include("../config/conexao_mysql.php");
    
        if(empty($user) or empty($senha)) {
        
            $acesso = 0;
            $mensagem = 1;
        
        }
        else {
        
            $sql = "SELECT * FROM usuarios WHERE user = '$user' AND senha = '$senha'";
            
            $resultados = mysql_query($sql,$conexao);
            $linhas = mysql_num_rows($resultados);
            
            if($linhas == 0) {
            
                $acesso = 0;
                $mensagem = 3;
                
            }
            if($linhas == 1) {
            
                $id_logado = mysql_result($resultados,0,'id');
                $painel_acesso_logado = mysql_result($resultados,0,'painel_acesso');
                
                if($painel_acesso_logado == "N") {
                
                    $acesso = 0;
                    $mensagem = 2;
                }
                else {
                    
                    $_SESSION["SWConnect"] = "UserAtivo8276621329312731";
                    $_SESSION["id_logado"] = $id_logado;
                    
                    echo "<script>self.location = 'index.php'</script>";
                }                
            }
        }    
    }

?>

Obrigado por tudo! Desculpas pela dor de cabeça!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...