[RESOLVIDO] Como obter o tempo de uma sessão para mostrar ao usuário?

Olá e bom dia a todos!

Gostaria de saber se o SC tem alguma macro para obter o tempo de uma sessão para que eu possa mostrar ao usuário e também para poder calcular o tempo restante daquela sessão.

Existe essa macro?
Se não, como obter essas informações?

Antecipadamente agradeço,

JamTC
:?

Todas as macros são descritas no WebHelp da ferramenta.

Sessão quem controla é o php.

Em uma googlada:
https://forum.imasters.com.br/topic/424529-resolvido exibir-tempo-restande-para-sessão-expirar/

Mas não seria mais fácil aumentar o tempo de sessão? Se o usuário estiver com a tela aberta não sei qual a necessidade de exibir o tempo de sessão.
É realmente não entendi a necessidade de exibir o tempo de sessão restante.

Oi Haroldo, bom dia!

Como sempre rápido e pronto a ajudar :slight_smile:

Eis os motivos:

  1. Necessidade de mostrar ao usuário o tempo que ele terá para trabalhar sem ter a sua sessão expirada;
  2. Mostrar o tempo inicial disponível e o tempo restante para alertá-lo.

Isso porque quando coloco os sistemas em produção as vezes não sei como está o PHP.ini do provedor e, dessa forma, também irá me alertar para fazer a modificação do “PHP.ini”.

[]s.

JamTC
:wink:

pra saber o tempo de sessão definido no php.ini use o comando abaixo:
ini_get(“session.gc_maxlifetime”)
geralmente o padrão é 1440, q dá 24 minutos.

pra mostrar um countdown deves usar o menu.
não sei se usas rodapé no teu menu, mas é bom usar.
supondo q usas um rodapé no menu de 2 ou 3 colunas.
em uma delas, ex.: LIN1_COL1
selecione Valor e defina o valor com o seguinte:

vá em Eventos>onLoad do menu
e cole isso:
?>

<?php simples e prático, tens um cronometro da sessão. Abraço.
2 Curtidas

Boa tarde Clarck,

Muito obrigado pela sua postagem. Vou testar e implementar sua dica e depois posto aqui o resultado.

Valeu!

JamTC
:smiley:

Olá e bom dia a todos!

Caro Clarck,

Informo que testei e implementei sua solução postada acima e tudo funcionou perfeitamente.

Mas uma vez muito obrigado pela solução.

[]s.

JamTC
:smiley:

Show de bola…

Agora coloca o Topico como resolvido.

Só a titulo de informação. Pra complementar a solução.

Eu sei que já foi resolvido, mas se você criar um modulo segurança novo,
vais ver que recentemente a NetMake colocou uma opção nova,
que trata do logout ao termino do tempo de sessão…
e até podes escolher com logout direto ou com mensagem de confirmação.

Grande abraço.

Bem lembrado sobre “recentemente a NetMake colocou uma opção nova,
que trata do logout ao termino do tempo de sessão…”, apenas para colaborar com o assunto, eu inserir sem criar um novo módulo, manualmente a macro no evento onScriptInit do login…

//REDIRECIONA APÓS CAIR A SESSÃO - novidade da v9.3
sc_apl_default(“ap_Login”,“M”); //se for “R” redireciona sem perguntar

Boa tarde!

Gostaria de entender melhor: Esse tempo de sessão é no caso de inatividade na aplicação ou a sessão cai mesmo com um usuário ativo, ou seja, fazendo alguma operação no sistema??

Obrigado.

a sessão não cai com o usuário interagindo na aplicação.

@jorge.inacio, quando um tópico estiver marcado como resolvido, e deseja reabrir o assunto, crie um tópico novo.

Obrigado Haroldo.
Mas foi só uma pergunta mesmo, não achei necessário abrir um tópico.

Boa tarde!

Qual o código que foi colocado no onLoad do Menu para fazer o countdown?

Oi @joeltonsilva ,

Bom dia!

Segue o código:

[TempoSessao] = "<span id='cronometro'></span><script>iniciaLogout();</script>";

?>

<script>
	var hora;
	var muda = 1;
	var tempo = new Number();
	tempo = <?php echo ini_get("session.gc_maxlifetime") ?>;
	function iniciaLogout(){
	   if((tempo - 1) >= 0){
		  var min = parseInt(tempo/60);
		  var seg = tempo%60;
		  if(min < 10){
			 min = '0'+min;
			 min = min.substr(0, 2);
		  }
		  if(seg <=9){
			 seg = "0"+seg;
		  }
		  hora = min + ':' + seg;
		  $("#cronometro").html(hora);
		  setTimeout('iniciaLogout()',1000);
		  if((tempo - 1) <= 25){
			 if(muda == 1){
				$("#cronometro").css('color', 'red').css('font-weight', 'bold');
				muda = 0;
			 }else{
				$("#cronometro").css('color', 'white').css('font-weight', 'normal');
				muda = 1;
			 }
		  }
		  tempo--;
	   }else{
		  $("#cronometro").html('00:00');
	   }
	}
</script>

<?PHP

[]s.

JamTC
:wink:

3 Curtidas

Ué???
Tudo vazio? Isto mesmo?

Oi @joeltonsilva, já arrumei a postagem.

[]s.

JamTC
:slight_smile:

Lindo demais isto…:heart_eyes::heart_eyes::rofl::rofl::rofl:
Estava precisando… valew!!!

José Antônio,
Estava eu com uma “briga” danada aqui para postar essa informação ao cliente do sistema, e encontrei esse código.
Fico muito grato.
Resolveu o meu problema.
Forte abraço.

1 Curtida