Tempo de Sessao.

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.

Paulo bom dia,

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

Obrigado Kleyber,

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

Obrigado.
Paulo.

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,

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 [b]session_cache_expire/b (trinta minutos). Veja o exemplo abaixo:

[i]<?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
”;
echo “As sessões em cache irão expirar em $cache_expire minutos”;
?>[/i]

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

T+

Valeu Pessoal as dicas foram otimas.

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 ?

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.

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.

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

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.

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.

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

1 Curtida

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.

?>

<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

obrigado

to achando que vale reabrir o tópico, porque você fez algo bem legal, pergunto: Pode explicar mais sobre o controle de sessão? Onde vc chama a função “redir”, o que faz o useronlie_log…

abraços e parabéns. se puder nos dê uma força

A cada 15 segundo o menu executa via ajax uma blank que salva a hora atual no registro do usuário logado.

a conta é hora atual - hora gravada no registro do usuário > que tempo de sessão desejado então desloga usuário.

1 Curtida