Ir para conteúdo

POWERED BY:

Arquivado

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

Cícero Martins

[Resolvido] Session encerra sozinha

Recommended Posts

Salve tripulação,

 

Estou criando um script através de session...

 

Porém, após um tempo, as informações armazenadas na $_SESSION estão perdendo, sendo assim a sessão está encerrando sozinha e volta para tela de login.

 

 

 

Como posso resolver isso?

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso só deveria acontecer se você quisesse, ou seja colocar tempo de expiração da sessão de outro modo só destruindo-a ou fechando o browser. Era mais facil ajudar se mostrasse o código

Compartilhar este post


Link para o post
Compartilhar em outros sites

fell,

 

Não há código. No outro servidor que eu estava, não acontecia isso, neste acontece. A tecnologia é a mesma.. Acredito que seja a configuração padrão do servidor!!!

 

 

login.php

 

session_start();
$_SESSION["usuario"] = $nomedeusuario (vindo do banco);

check.php

 

session_start();
if (!isset($_SESSION["usuario"])) {
    // vai para o arquivo login.php
}

Do nada, depois de um tempo, a sessão encerra... Ou seja, os dados armazenados na sessão se "perdem"... Há alguma variável que controla o tempo que estes dados ficam armazenados? Como altero isso?

 

 

Abraços!

...

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso pode ser porque o lifetime delas estejam fora do normal

coloque um ini_set na sua pagina com os dados para almentar o tempo de expiração dela

ini_set('session.gc_maxlifetime', 8*60*60);

Isso vai deixar a sessão na ativa por 8 horas com o browser aberto . se fechar acabou

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei um echo session_cache_expire(); e ele me retornou 180.

 

Porém não está durando isso!

 

Dura BEM menos!

 

Tentei dar um session_cache_expire(28800);

 

Também não funcionou!

 

ini_set('session.gc_maxlifetime', 8*60*60);

session_cache_expire(28800);

 

 

Estas configurações vem antes ou após o session_start()?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Cicero,

 

Cara, já tive um problema parecido...

no meu caso meu problema foi resolvido tornando o nome da variável da session diferente das variaveis globais que eu tinha. Exemplo:

 

Antes:

 

$usuario = $_SESSION['usuario'];

 

Depois de alterar(funfou beleza!):

 

$usuario = $_SESSION['s_usuario'];

 

Tenta fazer isso no teu codigo pra ver...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Thalles,

 

Mas minha sessão não é registrada com nome de nenhuma variável dos arquivos.

 

Eu utilizo

$_SESSION["login"]["id"]

 

A única variável/array da sessão é esta!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

execute phpinfo() e verifique se a configuração do ambiente possui os requisitos mínimos para operar o sistema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao Cicero...

 

Tava dando uma olhada aqui em forums em ingles e no php.net... no caso de servidores compartilhados, geralmente os arquivos de session ficam salvos numa mesma pasta.

 

Se o seu "colega de servidor" estiver com session.gc_maxlifetime menor que o seu, quando ele executar o garbage collector (coleta de lixo) podera deletar seus arquivos de session...

 

Uma dica seria mudar o armazenamento das variáveis de session para um diretório seu com a funcão session_save_path (lembrando que deverá ser um diretório fora do public_html por questoes de segurança...)

 

no php.net ta assim:

 

If different scripts have different values of session.gc_maxlifetime but share the same place for storing the session data then the script with the minimum value will be cleaning the data. In this case, use this directive together with session.save_path.

 

entao no final tenta desse jeito pra ver se da:

 

session_save_path('/meu_dir/minhas_sessions/');
ini_set('session.gc_maxlifetime', '28800');
session_start();

 

Bom, tentei né!

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.