TIMEOUT LOGIN

(robertobru) #1

Alguém pode postar aqui no fórum um exemplo de script que fecha a aplicação ao encerrar o TIMEOUT da mesma e reabra a aplicação de login?

(rayfcrols) #2

também tenho interesse.

(Antonio Jr.) #3

Essa é boa. Alguém tem algum exemplo ou sugestão?

Abraços,
Antonio CP Júnior
27-8859-2466

(Haroldo) #4

o php executa um erro específico e envia ao apache que carrega essa página de erro, vc pode configurar no apache para redirecionar para o login.

(Antonio Jr.) #5

Valeu Harold,

Eu tinha feito dentro do próprio SC. Assim: ao entrar no form, verificava se minha variável global principal estava vazia, caso sim, executava um sc_redir para o login, mas a tela abria dentro do iframe do menu que estava no momento. Não saia do sistema para entrar novamente para poder logar.

Abraços,
Antonio CP Júnior.

(JulioOliveira) #6

Levando em consideração que a maioria das publicações está em servidores pagos seria difícil ficar pedindo pra alterar PHP e Apache dos outros. Acho que só se aplica localmente isso.

Acho que o monitoramento de uma variável global ainda é uma solução. Bem que o SC poderia vir com um TIMEOUT global.

(rayfcrols) #7

Pessoal tenho uma ideia para trabalhar esta rotina de logout-timeout,
A ideia é aproveitar a minha rotina do log do sistemas, esta que já esta em uso em todas as minhas aplicações, mais até agora eu não conseguir colocar pra funcionar vou postar meu código assim v/c´s terão uma melhor compreensão da minha ideia, e assim melhor me ajudar;

///Este é um código de uma biblioteca responsável por receber os parâmetros de todas as minhas aplicações e gravar no log.

[i]<?php
Function log($userid,$logapl,$logreg,$logacao)
{
$logip = $_SERVER[“REMOTE_ADDR”];
sc_exec_sql(“INSERT INTO logs (log_apl,log_acao,log_user,log_ip,log_campo) VALUES (’$apl’, ‘$logacao’, ‘$userid’, ‘$logip’, ‘$logreg’)”);

/* Inicio do teste de Timeout */

sc_lookup(dataset, "
SELECT TOP 1
log_data
FROM
dbo.logs
WHERE
(log_user = ‘[id_usuario]’)
ORDER BY
log_data DESC
");

/* Erro no lookup /
if (FALSE === {dataset}) {
sc_error_message(“Ocorreu um erro no acesso ao banco de dados.
”);
}
elseif (empty({dataset})) { /
EOF */
sc_error_message(“Nenhum valor foi retornado pelo banco.
”);
}
else {

$data_ult_mov=mktime({dataset[0][0]});
$data_agora=mktime(date(“H,m,s,m,d,Y”));
if(($data_ult_mov-$data_agora)<120){
sc_reset_apl_status(); // limpa da sessao todas as aplicacoes habilitadas no momento
$_SESSION[‘var_login’] = ‘’;
echo ‘true’;
session_destroy(); //pei!!! destruimos a sessão :wink:
session_unset(); //limpamos as variaveis globais das sessões
sc_redir('control_login.php, “”, “_self”);exit;
//echo ‘Hora do Logout’;
}

} // Fim do teste de timeout
} // Fim da Função de Log
?> [/i]

(Antonio Jr.) #8

Pessoal,

Conforme dito pelo Haroldo, o PHP envia um código de erro ao Apache, mas como enviar esse código no momento que eu desejar? Como definir isso no meu código no PHP, pois quero registrar o LOG e mandar para o Apache através de um código particular. Seria um return, um comando específico?

Abraço,
Antonio Júnior
27-8859-2466

(Hudson Marques) #9

Galera, bom dia. Em qual arquivo de configuração do Apache faço este redirect?