Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

manolegal

[Resolvido] Atualizar relação de usuários logados

Recommended Posts

Olá amigos. Estou mostrando os usuários logados no sistema da seguinte forma:

 

index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>web</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<frameset rows="40,*,35" frameborder="NO" border="0" framespacing="0">
   <frame src="superior.php" name="superior" scrolling="NO" noresize >
   <frame src="central_1.php" name="central">
   <frame src="inferior.php" name="inferior" scrolling="NO" noresize> // Onde irei mostrar os usuários logados
</frameset>
<noframes>
<body>
</body>
</noframes>
</html>

 

inferior.php

$id_usuario = $_SESSION["id_usuario"];
$time_atual = time();
$data_atual = date("Y-m-d H:i:s");
$tempominutos = 15; // Intervalo em minutos
$time_requerido = time()-($tempominutos * 60);

   // Verifica se Usuario esta na tabela "usuarios_logados"
   $Sql_selec = "SELECT * FROM usuarios_logados WHERE usuario_id = '$id_usuario'";
   $Resultado_selec = executa($Sql_selec);
   $total_registros_selec = pg_num_rows($Resultado_selec);
if ($total_registros_selec == 0) { // Se nao estiver, insere usuario na tabela "usuarios_logados"
   $Sql = "INSERT INTO usuarios_logados (usuario_id, ultimo_login, time_ultimo_login)
VALUES ('$id_usuario', '$data_atual', '$time_atual')";
   $Resultado = executa($Sql);
}
else { // Se estiver atualiza ultimo login
   $Sql_atualiza = "UPDATE usuarios_logados SET ultimo_login='$$data_atual',
time_ultimo_login='$time_atual' WHERE usuario_id = '$id_usuario'";
   $Resultado_atualiza = executa($Sql_atualiza);
}

   // Deleta registros de Usuarios inativos em um tempo superior ao requerido
   $Sql_del = "DELETE FROM usuarios_logados WHERE time_ultimo_login < '$time_requerido'";
   $Resultado_del = executa($Sql_del);

   // Seleciona Usuários logados
   $Sql_logados = "SELECT usuarios_logados.usuario_id, pessoas.nome
FROM pessoas, funcionarios, usuarios, usuarios_logados
WHERE funcionarios.pessoa_id = pessoas.id_pessoa
AND usuarios.funcionario_id = funcionarios.id_funcionario
AND usuarios.id_usuario = usuarios_logados.usuario_id
AND time_ultimo_login >= '$time_requerido'
ORDER BY pessoas.nome ASC";
   $Resultado_logados = executa($Sql_logados);
   $total_registros_logados = pg_num_rows($Resultado_logados);
if ($total_registros_logados > 0){
$usuario_mostra = "";
while ($linha = pg_fetch_array($Resultado_logados)){
$id_usuario = $linha["id_usuario"];
$usuario_mostra .= $linha['nome'] . ', ';
   }
$usuario_mostra = substr($usuario_mostra, 0, strlen($usuario_mostra)-2) . '.';
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Inferior</title>
</head>
<body style="color: rgb(0, 0, 0); background-color: rgb(51, 0, 153);"
alink="#000099" link="#000099" vlink="#990099">

<tr><center><font face="arial" size="2" color="antiquewhite">

<?php
if ($nivel <= "3") {
echo "Usuários Online: "?>
<strong><?php echo" ($total_registros_logados)        $usuario_mostra"?></strong>
<?php } ?>

</font></center></tr>

<br>
</body>
</html>

 

Como faço para atualizar AUTOMATICAMENTE por exemplo, a cada 15 minutos o campo "time_ultimo_login" da tabela "usuarios_logados". No momento só está atualizando quando o usuário acessa o sistema ou ao pressionar F5.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta adicionar este código ao seu <head>:

 

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(function($){
   var userOnline = setInterval(function() {
       $('frame[name=inferior]').attr('src', 'inferior.php');
   }, 15000);
});
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.