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

Erro com session


Fabricio Barili

Pergunta

Pessoal, tenho um sistema de login utilizando $_SESSION.. segue abaixo

login.php

<?php
    require_once('../config.php');

        $usuario = trim($_POST['usuario']);
        $senha = trim($_POST['senha']);

        if(strlen($usuario) == 0 or strlen($senha) == 0){
           header('Location: '.DIR.'/index.php?error=1');
        }


        $user = new Usuario();
        $user->usuario = $usuario;
        $user->senha = $senha;
        $user->acesso = 1;

        $user->find(true);
        $linhas = $user->numrows();

        if($linhas == 1){
            $_SESSION['CODIGO'] = $user->codigo;
            setcookie('CODIGO', $user->codigo, 3600); //coockie expira em 1 hora
            $log = new Log();
            $log->acao = 'Acessou o sistema';
            $log->usuario = $user->codigo;
            $log->save();
            header('Location: '.MOD.'/home');
        }else{
            header('Location: '.DIR.'/index.php?error=2');
        }
        
        
?>
o proximo passo vai para a pasta 'home' que está dentro da pasta 'modulos' onde tem o arquivo 'index.php' este arquivo chama outro arquivo o 'menu.php' que está a 2 niveis acima e dentro da pasta includes '../../includes' com o seguinte codigo menu.php
<?php
    require_once('../config.php');
    //print_r($_COOKIE);
?>
<div id="menu">
    <div id="menu3">
        <ul>
            <li><a href="<?php echo MOD ?>/home/">Home</a></li>
            <?php
                $acesso = new AcessosUsuarios();
                $acesso->codigoUsuario = $_COOKIE['CODIGO'];
                $acesso->find();
                while($acesso->fetch()){
                    $pasta = new Pastas();
                    $pasta->codigo = $acesso->pasta;
                    $pasta->find(true);
                    echo '<li><a href="'.MOD.'/'.$pasta->url.'/">'.$pasta->nome.'</a></li>';
                }
            ?>
        </ul>
    </div>
</div>
e o index.php que chama esse menu.php tem o seguinte codigo
<?php
    require_once('../../config.php');
    require_once(INC.'/html_head.php');
    require_once(INC.'/head.php');
    require_once(I[code]
NC.'/head_body.php'); require_once(INC.'/topo_pagina.php'); $usuario = new Usuario(); $usuario->get($_SESSION['CODIGO']); include(INC.'/menu.php'); ?> <div id=conteudo"> <h1>Home</h1> <Br> <p>Bem Vindo <?php echo $usuario->nome; ?></p> <p>Aten&ccedil;&atilde;o, todas as a&ccedil;&otilde;es ser&atilde;o gravadas em <b>LOG</b></p> </div> <?php require_once(INC.'/fim_pagina.php'); ?>

e agora vem o problema

quando chamo o menu.php atraves da pagina index.php ele não reconhece a $_SESSION['CODIGO] e neste caso também o $_COOCKIE['CODIGO']

dei print_r($_SESSION) e print_r($COOCKIE) e retornaram arrays vazios

porém

se eu acessar este arquivo (menu.php) pelo browser 'localhost/gerenciador/includes/menu.php' ele me exibe os arrays como contendo a posição CODIGO e o seu valor..

alguém sabe o que pode estar ocorrendo?

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

<?php
    session_start();

    define('DIR', 'http://192.168.2.94/gerenciador');

    // altera o timezone padrão
    date_default_timezone_set('America/Sao_Paulo');
    // carrega as configuracoes de lumine
    require_once 'lumine-conf.php';
    // carrega a biblioteca Lumine
    require_once 'lumine/Lumine.php';


    // inicializa lumine
    $cfg = new Lumine_Configuration($lumineConfig);

    // registra lumine para fechar a conexao quando terminar o script
    register_shutdown_function(array($cfg->getConnection(),'close'));
    // registra lumine para auto importar as classes quando não estiverem carregadas
    spl_autoload_register(array('Lumine', 'import'));


    define('INC', DIR.'/includes');
    define('CSS', DIR.'/css');
    define('IMG', DIR.'/img');
    define('DOC', 'documentos');
    define('JS', DIR.'/js');
    define('MOD', DIR.'/modulos');
    define('ACT', DIR.'/actions');
    define('LUM', DIR.'/lumine');
?>

uso o lumine como framework

Link para o comentário
Compartilhar em outros sites

  • 0

bah... dai me quebra... coloca em todas as paginas isso deve pesa no servidor entende...

deve ter algum erro.. porque session deveria ser global não deveria?

E o pior de tudo, também tenho arquivos de LOG... e neles eu preciso da session para dizer qual usuario esta fazendo a ação... e por incrível que pareça, nesses arquivos ele reconhece a posição 'CODIGO' da session...

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...