Autor Tópico: Tempo de Sessao.  (Lida 12736 vezes)

pauloper

  • Global Moderator
  • Avançado
  • *****
  • Mensagens: 481
Tempo de Sessao.
« Online: Abril 19, 2012, 11:38:49 am »
Ola Pessoal,

Alguem ja viu esta esta mensagem?

Não foi possivel conectar com o banco de dados: O tempo de sessão do php expirou ou os parametros de conexão estão incorretos.

Alguem tem alguma dica de como controlar ou aumentar o tempo ?

Obrigado.
Paulo.


Kleyber

  • Expert
  • *****
  • Mensagens: 3134
    • TK Informídia
Re:Tempo de Sessao.
« Responder #1 Online: Abril 19, 2012, 11:43:46 am »
Paulo bom dia,

No site da Associação (www.auscriptcase.com.br) você vai ver um exemplo prático disto. Veja se te atende.
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão

pauloper

  • Global Moderator
  • Avançado
  • *****
  • Mensagens: 481
Re:Tempo de Sessao.
« Responder #2 Online: Abril 19, 2012, 11:56:41 am »
Obrigado Kleyber,

Vou dar uma olhada.
Lembrando que a mensagem acima ocorre quando usuario deixa sistema
sem utilizar por algum tempo.

Obrigado.
Paulo.

Kleyber

  • Expert
  • *****
  • Mensagens: 3134
    • TK Informídia
Re:Tempo de Sessao.
« Responder #3 Online: Abril 19, 2012, 02:15:42 pm »
Exato. No exemplo que te passei isso fica parametrizável. Você pode escolher QUEM pode ter mais tempo ou não. Qualquer dúvida maior, o Jovito, que é o pai da criança te dá maiores detalhes.

Abraços,
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão

jovitomelo

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 1000
    • Simples Assim
    • Email
Re:Tempo de Sessao.
« Responder #4 Online: Abril 19, 2012, 07:52:53 pm »
Paulo,

No arquivo php.ini existe uma linha +- assim:

session.cache_expire=60

Onde 60 é tempo em minutos da sessão...
Após alterá-la re-inicie o Apache.

Você poderá alterar o tempo de sessão do PHP, via SC, utilizando o comando session_cache_expire(30) (trinta minutos). Veja o exemplo abaixo:

<?php

/* Define o limitador de cache para 'private' */
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* Define o limite de tempo do cache em 30 minutos */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* Inicia a sessão */
session_start();
echo "O limitador de cache esta definido agora como $cache_limiter<br />";
echo "As sessões em cache irão expirar em $cache_expire minutos";
?>



No exemplo acima não há necessidade de re-iniciar o PHP uma vez que session_start() inicializará a sessão.

T+
Jovito Melo
Maceió - Alagoas

pauloper

  • Global Moderator
  • Avançado
  • *****
  • Mensagens: 481
Re:Tempo de Sessao - Resolvido.
« Responder #5 Online: Abril 20, 2012, 10:02:05 am »
Valeu Pessoal as dicas foram otimas.


weber

  • Expert
  • *****
  • Mensagens: 513
    • Email
Re:Tempo de Sessao.
« Responder #6 Online: Agosto 17, 2012, 12:10:41 pm »
Paulo,

No arquivo php.ini existe uma linha +- assim:

session.cache_expire=60

Onde 60 é tempo em minutos da sessão...
Após alterá-la re-inicie o Apache.

Você poderá alterar o tempo de sessão do PHP, via SC, utilizando o comando session_cache_expire(30) (trinta minutos). Veja o exemplo abaixo:

<?php

/* Define o limitador de cache para 'private' */
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* Define o limite de tempo do cache em 30 minutos */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* Inicia a sessão */
session_start();
echo "O limitador de cache esta definido agora como $cache_limiter<br />";
echo "As sessões em cache irão expirar em $cache_expire minutos";
?>



No exemplo acima não há necessidade de re-iniciar o PHP uma vez que session_start() inicializará a sessão.

T+

jovito, to com um propblema parecido mas fiquei em duvida eu posso definir o tempo da sessão para todas as variaveis registradas pelo SC, tipo utilizaria esse seu codigo no login do sistema, e depois ao utilizar novas sessions registradas pelo sc_set_global, pegariam o mesmo timeout ?

saulobborges

  • Expert
  • *****
  • Mensagens: 1416
    • SGi Sistemas
    • Email
Re:Tempo de Sessao.
« Responder #7 Online: Agosto 17, 2012, 01:10:22 pm »
O escopo desse comando é por sessão e não por variável, a sessão que também não deixa de ser uma variável armazena todas as outras variáveis criadas dentro do sistema no momento em que o usuário faz o acesso, conforme o sistema for pedindo mais memória pra armazenar a sessão mais coisas vão entrando neste arquivo que é criado dentro do SO.

Assim quando você define que a sessão terá 60 minutos, todas as variáveis ficarão disponíveis por este tempo, depois todas morrem, lembrando que a cada interação do usuário com o sistema esse tempo é recarregado, ele funciona como um relógio com contagem regressiva que recarrega a cada requisição do browser no sistema.

Lembrando que principalmente em um ambiente compartilhado (servidor) sessões com tempo muito longo podem comprometer o desempenho do servidor, isso vai depender muito da quantidade de variáveis de sessão que seu sistema utiliza e quantos usuários simultâneos ele tem.
« Última modificação: Agosto 17, 2012, 01:29:42 pm por saulobborges »

weber

  • Expert
  • *****
  • Mensagens: 513
    • Email
Re:Tempo de Sessao.
« Responder #8 Online: Agosto 30, 2012, 11:34:04 pm »
vou tentar explicar todos os detalhes

-estrutura inicial
atualmente tenho um index.php q possui apenasu m iframe, 100 x 100 para que dentro dele rode as app do SC na verdade unica e exclusivamente para "esconder" os endereços. das apps, etc...

-problema
nas app do sc eu utilizo a segurança de modo que ao fazer o login conforme cada nive de acesso do usuario eu libero ou nao as app relacionadas ao usuario, ok funciona as mil maravilhas se o usuario esta emcima da aplicação trabalhando, porem se ele para par air tomar um cafezinho, quando volta e tenta acesar qualquer coisa da "usuario nao autorizado" nao tenho como definir a sessao no servidor nao tenho acesso

tentativa
entao resolvi aplicar a metodologia indicada pelo jovito fiz o seguinte porem utilizei um intervalo de 150 minutos que +/- da um periodo de trabalho.

Código: [Selecionar]
session_cache_limiter('private');
session_cache_expire(150);
session_start();
header("Location: index.php");

não funcionou ao inves de dar a mensagem "usuario nao autorizado" ao clicar num dos itens do menu simplesmente ficou "carregando" e nao parou mais.

Alguem tem alguma ideia

weber

  • Expert
  • *****
  • Mensagens: 513
    • Email
Re:Tempo de Sessao.
« Responder #9 Online: Setembro 04, 2012, 08:30:43 pm »
ninguem ?

Grossildo

  • Avançado
  • ****
  • Mensagens: 320
    • Email
Re:Tempo de Sessao.
« Responder #10 Online: Abril 20, 2018, 12:48:07 pm »
ninguem ?
Olá, faz tempo essa mensagem.
Tõ com mesmo problema e já fiz de tudo q podia onde pesquisei e nada.
eu uso em produção debian 9
pela data do post creio q vc já conseguiu solucionar
por favor, se puder dividir o conhecimento fico grato.

Haroldo

  • Expert
  • *****
  • Mensagens: 8718
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:Tempo de Sessao.
« Responder #11 Online: Abril 20, 2018, 03:23:37 pm »
https://v9.infinitusweb.com.br/forum_sc/useronline_login/

uso no menu um timer acessando via ajax um php e controlo a sessão como desejo.


Grossildo

  • Avançado
  • ****
  • Mensagens: 320
    • Email
Re:Tempo de Sessao.
« Responder #12 Online: Abril 20, 2018, 04:03:44 pm »
https://v9.infinitusweb.com.br/forum_sc/useronline_login/

uso no menu um timer acessando via ajax um php e controlo a sessão como desejo.

ficou muito bom !!!



arnaldo

  • Iniciante
  • **
  • Mensagens: 82
Re:Tempo de Sessao.
« Responder #13 Online: Abril 20, 2018, 04:19:36 pm »
Parabéns Haroldo... sempre trazendo novidades.
Consegue explicar como vc fez?
Obrigado

Haroldo

  • Expert
  • *****
  • Mensagens: 8718
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:Tempo de Sessao.
« Responder #14 Online: Abril 20, 2018, 04:24:26 pm »
Eu fiz esse código na onAppinit do Menu:

Onde useronline_set.php grava timestamp no registro do usuário logado a cada n milésimos de segundo.
Código: [Selecionar]
?>

<script>
function redir (check) {

if (check==1) {

$(window.document.location).attr('href','../useronline_login/useronline_login.php');

}

//if (check==2) {
// alert('Sua Sessão expirou, feche suas telas e refaça o login.');
//}
   
}

setInterval(function(){
$.post('../useronline_set/useronline_set.php')

.done(function( data ) {
    redir(data);
  });

}, 15000);

setInterval(function() {

var vTime = new Date ( );
  var vH = vTime.getHours ( );
  var vM = vTime.getMinutes ( );
  var vS = vTime.getSeconds ( );

vH=vH<10?'0'+vH:vH;
vM=vM<10?'0'+vM:vM;
vS=vS<10?'0'+vS:vS;
  //alert(vH+':'+vM+':'+vS);
    $("#clock").html(vH+':'+vM+':'+vS);

}, 1000);

</script>

<?php

Parabéns Haroldo... sempre trazendo novidades.
Consegue explicar como vc fez?
Obrigado