Tempo de sessão caindo constante

Boa tarde Pessoal,

Tenho um sistema onde cliente fica em uma tela olhando o calendário, por isso, precisa ficar umas 10horas o sistema sem fazer logout automático.

setei no OnApplicationInit

/ Define o limite de tempo do da sessão do PHP em 6 horas /
ini_set(“session.gc_maxlifetime”, “21600”);
/---------------------------------------------------------/

coloquei 98600 para não ter problema mas infelizmente em 2 horas cai a sessão.

Att,

Seria bom observar qual o valor do atributo session.gc_maxlifetime através da função phpinfo() a para verificar qual é o valor default e calcular se realmente equivalem a 2 horas.

Se você tiver um javascript ou jquery acessando um script php de tempos em tempos a sessão não expira.

Uso isso nesse exemplo abaixo e já deixei de um dia para o outro e funciona:

https://v9.infinitusweb.com.br/scriptcase/app/forum_sc/useronline_login

Haroldo vi seu exemplo, muito bacana parametrizar o tempo.
Utilizei a função setInterval() em um sistema para realizar o logout após 20 minutos mas com uma mensagem de confirmação sendo executada:

var t = 1200;

function myTimer() {
  var r = confirm('Deseja continuar no Sistema?');
  if (r == true) {
    t = 1200;
    return;
  } else {
    location.href='../blk_sair/blk_sair.php'; 
  }
}
</script>

<div id='tempo' style='text-align:left;font-family:Arial;font-size:x-small;float:left'></div>


<script>

function FormataTempo(){
  //Horas
  if(t<3600){
    h=0;
  } else { h=Math.floor(t/3600); }
  
  //Minutos
  m=t-(h*3600);
  if(m>59){ms=Math.floor(m/60)}else{ms=0;}
  
  //Segundos  
  s=t-(ms*60);
  
  return h+'h(s)'+ms+'min(s)'+s+'(s)';
}

var myVar2=setInterval(function () {myRelogio()}, 1000);

function myRelogio() {
  t=t-1;
  tx = FormataTempo();
  x='Sessão expira em: <font color=blue>' + tx + '</font>' ;
  document.getElementById('tempo').innerHTML = x;
  if(t==0){
    myTimer();
  }
}

Muito bom Eduardo.

Tem como compartilhar o codigo javascript do logout parametrizado

Bom dia, tentei enviar via pessoal …deu bloqueado…

Qual o valor dessa app, para meu estudo ?

obrigado

Ivonielson:

Não entendi, o que precisa parametrizar: são dados no momento do logout ou parametrizar o tempo para realização do logout?

Caso necessite adicionar parâmetros após o logout é possível utilizar QueryString blk_sair.php?parametro=valor mas se já estiver utilizando estes dados armazenados em SESSIONs poderá realizar as ações na própria página do logout.

Agora se for o tempo, via JavaScript, depende de como foi informado.
Pode ser armazenado numa tabela do banco de dados, ser recuperado por uma Query após o login e atribuir para a variável JavaScript:

$v_cmd = “SELECT TEMPO_ATIVIDADE FROM TABELA_PARAMETRIZACAO”;
sc_lookup(ds, $v_cmd, “Conexao”);
$v_tempo={ds[0][0]};

?>

function FormataTempo(){ //Horas if(tempo<3600){ h=0; } else { h=Math.floor(tempo/3600); } //Minutos m=tempo-(h*3600); if(m>59){ms=Math.floor(m/60)}else{ms=0;} //Segundos s=tempo-(ms*60); return h+'h(s)'+ms+'min(s)'+s+'(s)'; } var myVar2=setInterval(function () {myRelogio()}, 1000); function myRelogio() { tempo=tempo-1; tx = FormataTempo(); x='Sessão expira em: ' + tx + '' ; document.getElementById('tempo').innerHTML = x; if(tempo==0){ myTimer(); } } [b]<?php[/b]