Timeout

Olá,

Alguem saberia como criar uma “rotina” de timeout de sessão (no ScriptCase), do tipo:

Sua sessão expirou.
Clique aqui para efetuar o login novamente…

Grato pela atenção.

tem funçoes java script de inatividade, vc pode redirecionar direto para o login depois de algum tempo.

O ScriptCase dispõe dessas funções ou terei de pagar na Net?

Pagar? Não, claro que não. O Scripcase náo tem funçãopara isso, pelo menos não abertamente.
Mas pesquise no Google, existem milhares de sites que dispõe códigos javascript gratuitamente,alguns deles:

http://www.linhadecodigo.com.br
http://www.codigofonte.com.br
http://www.supertrafego.com
http://www.javascript-tutorial.com.br
http://www.scriptbrasil.com.br
http://www.portalwordpress.com.br
http://www.tutoriaisclube.com
http://www.phpgratis.com.br
http://www.codigosnaweb.com

Prezado Haroldo,

Desculpe-me, mas fui eu que errei ao escrever “pagar” ao invés de “pegar” na net.
Mas, de qualquer forma, obrigado pela dica!

Eu sugiro aos colegas que quando estiverem dispostos a ajudar que se possível além da dica testem suas sugestões antes de passar ao outro colega, ou dêem a sugestão completa se já a tiverem utilizado, desta forma todos são beneficiados.
Qto aquele que recebe é sempre bom postar o resultado se deu certo ou não, tem pessoas que acha que somos obrigados a responder e ajudar sem esperar ao menos um obrigado!
abs.

alcvieira acho que você está um pouco rude nas colocações, Haroldo é uma das pessoas que mais vejo ajudando no forum, creio eu que ele não iria entrar nos sites e postar exemplos de códigos, com um pouco de paciência e dedicação do nosso amigo eilson, ele conseguirá, e se tiver complicações em usar a função no scriptcase, cabe a ele pedir ajuda novamente aqui, que o ajudaremos, mas quanto ao resultado, concordo com você, geralmente quando as soluções propostas aqui funcionam, os beneficiados não retornam pra dizer que funcionou. Isso ajudaria aos próximos que lerem o tópico, terem a certeza que aquela solução funcionou.
Atenciosamente,
Victor Moraes

Pelo que entendi aqui a crítica foi direta a mim, por não ter postado o código pronto e testado no scriptcase, se eu ja tivesse passado pela situação em questão e tivesse o mesmo funcionando em meus aplicativos, eu o teria feito, pois o intuito é ajudar, muita coisa que eu não consigo fazer, eu pesquiso, tentar achar soluções alternativas, como foi o caso do master/detail. que consegui desenvolver a muito tempo e gratuitamente disponibilizei aos colegas, mas não posso ficar desenvolvendo código para atender as necessidades específicas de cada um, pois meu tempo já é super escasso. Acho que nosso colega esta com uma bronca pessoal, por causa da Associação, e respeito vossas opiniões e críticas, e independente delas, na medida do possível continuarei ajudando.

Um Triplece Fraternal Abraço a todos.

Alguém pode mostrar um exemplo como foi usado pra resolver essa questão de timeout?
Obrigado!

Amigos,

Sei que o tópico é antigo, mas uma possível solução (talvez não a ideal) seria registrar uma variável na sessão contendo a data e hora que o usuário realizou login.

Como a intenção é calcular o tempo de inatividade e não o tempo total desde o login, teríamos que “atualizar” a variável de sessão em cada ação do usuário, atribuindo a ela o valor do horário atual…

Se a aplicação principal for um menu por exemplo, dá pra conferir isso no evento onExecute. Cada vez que o usuário clicar em uma opção do menu será conferido o tempo de sessão. Se for maior que o desejado (expirou), limpamos as variáveis de sessão e redirecionamos pra página de login. Senão, atualizamos a variável de sessão, atribuindo a ela o horário atual.

Vou fazer um teste aqui e depois coloco o código.

Att.
Robson

Segue abaixo o exemplo do código… espero que seja útil pra alguém…

Primeiro devemos registrar uma variável de sessão durante o login do usuário, contendo a data e hora atual:

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

Depois devemos realizar a rotina para conferir o tempo de inatividade. No exemplo abaixo coloquei no evento onExecute de um menu, mas poderá ser usado em qualquer tipo de aplicação dependendo da necessidade de cada projeto:

/**  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(apl_login, "", "_parent");
	}
	else
	{
		$hora_login = $hora_now;
	    	sc_set_global($hora_login);
	} 

Pra uma maior segurança, talvez o ideal seria utilizar esta verificação em cada aplicação do sistema…

Att.
Robson

Se me permitem, NOVAMENTE, DE NOVO, OUTRA VEZ, peço a gentileza de aceitarem meu elogio no que diz respeito a humildade dos que sabem quererem ajudar nas resoluções dos problemas postados nesse fórum. Agindo assim, todos nós, participantes desse espaço, somente seremos beneficiados.
Ressalto que não estou, de forma alguma, querendo me dirigir à alguém especificamente, e a minha intenção com esses comentários visa unir ainda mais os amigos que sempre nos ajudaram (desde o início disso tudo), e os novatos que também ajudam, sem medirem esforços como os antigos membros.

Obrigado por compartilhar o conhecimento Robson.