Usuário deslogado por inatividade (v5)

Será que ainda consigo uma cópia desse material completo? Em caso afirmativo utecnico[@]gmail.com. Muito obrigado.

1 Curtida

Também gostaria, se possível, que me enviassem a rotina completa. Obrigado. walter@walterflorencio.com.br

Sinto muito, não tenho mas as rotinas.

Salvei aqui na época:

/** Evento onValidate - Login */
$hora_login = date(‘Y-m-d H:i:s’);
sc_set_global($hora_login);

/** Evento onExecute() - Menu principal */

// 1º - armazena data e hora atual na variavel hora_now:
$hora_now = date(‘Y-m-d H:i:s’);

// 2º - captura a hora de login (ou hora da última atualização):
$hora_login = [hora_login];

// calcula a diferença entre hora do login e hora atual:
$hora_calcula = (strtotime($hora_now) - strtotime($hora_login));

/** verifica se o tempo é maior ou menor que 15 minutos (900 segundos).

  • caso seja maior: limpa as variáveis de sessão e de segurança, e redireciona pra aplicação de login (ex: apl_login).

  • caso seja menor: atualiza a variável de sessão com a hora atual. */

    if($hora_calcula > 900)
    {
    sc_reset_global([glo_login], [hora_login]);
    sc_reset_apl_status();
    sc_redir(control.php, “”, “_parent”);
    }
    else
    {
    $hora_login = $hora_now;
    sc_set_global($hora_login);
    }

Pessoal, é isso mesmo?

[size=22pt]robertobru… Muito Obrigado mesmo… Funcionou normal[/size]

1 Curtida

esse código não vai desativar o usuário por falta de inatividade.

Tem que criar um campo, embaixo no rodapé ou em cima do menu principal, usando html e usar o Javascript para monitorar e encerrar a sessão.

Um exemplo do código inteiro em html, podem executar no navegador para ver, depois só ajustar no SC:

<!DOCTYPE html>

<html>

<head>
<meta charset="UTF-8">
</head>

<body>

  <div>
   Sua Sessão Expira em <span id="timer">05:00<span> minutes!
   </div>

   <script>
   window.onload = function(){
     var hou = 4;
     var sec = 60;
     setInterval(function(){

       document.getElementById("timer").innerHTML = hou +" : " + sec ;
       sec--;
       if(sec == 00)
       {
         hou--;
         sec = 60;
         if (hou == 0)
         {
            hou = 2;
         }
       }
      },500);
    }
    </script>


</body>
</html>

Fera envia por favor para meu e-mail se possível…

joeltonsilva@gmail.com

http://www.scriptcase.com.br/forum/index.php/topic,4439.msg75046.html#msg75046

Haroldo, meu parceiro, boa tarde…

Tou pegando o bonde andando, tou sem saco de ler os posts antigos, então vou postar algo aqui e nem sei se é isso o que vocês estão tratando. Vamos lá.

Meu sistema de controle dos usuários funciona da seguinte maneira:

a) No cadastro dos usuários existe um campo que refere-se ao Tempo de Sessão - todo usuário tem um tempo, se ele for ilimitado, basta colocar o tempo como sendo 999999.
b) Criei um um rodapé específico que é a base da HOME do meu sistema (qualquer sistema) - normalmente esse rodapé fica na app “menu principal”
c) Neste rodapé tem uma rotina javascript que tem uma barra de progresso - veja figura abaixo.

Sempre que o usuário permanecer sem atividade pelo tempo pre-determinado no seu registro ele não faz mas nenhuma operação no sistema… ao tentar fazer algo ele informa que o tempo da sessão inspirou e redireciona para a tela de login… O usuário acompanha pela barra de progresso o tempo da sua sessão. Sempre que ele executa alguma coisa (normalmente é a chamada de uma nova app) a barra retorna ao ponto inicial.

É isso o que vcs estão tratando?

Jovito Melo

1 Curtida

MQEM (Meu querido e estimado amigo).

Sim é isso mesmo.

Demonstrei um exemplo nesse link, que controla 4 situações:

  1. Usuários online
  2. Manter o usuário sempre logado (nunca expirta a sessão)
  3. Expirar a sessão mas deixar o usuário fechar suas aplicações (não deixa abrir novas apps)
  4. Expirar a sessão e redirecionar para o login incondicionalmente.

O fechar pelo browser ou o sair pela aplicação não interfere no controle.

O exemplo usa um js no cabeçalho do menu como sugere.

http://iw.servehttp.com:81/sc81/app/forum_sc/useronline_login/

para testar abrir a aplicação em 2 browsers diferentes com nomes de usuários diferentes.

Fala Brother…

Vou dar uma fuçada durante a noite mas, vindo de você, tenho certeza que tá perfeito…

Atualizei minha versão para V81 na semana passada, nunca mais tinha feito nada… agora tou tendo muitos problemas de travamento, vou tentar resolver isso e dar uma verificada no seu exemplo.

Forte abraço e beijo no seu coração.