Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 258
Sexo: Masculino

online vs offline

20-10-2016 10:03

web, eu tenho uma pagina a qual faço login e logout...na base de dados fica o registo de estado= 'online' ou 'offline' , mas por vezes nao faço logout, simplesmente fecho o browser ou a pagina....e ao fazer isso eu queria informar a base de dados de que ja nao estaria online...criei este script...a parte javascript ainda nao esta boa...


a ideia é criar uma função que periodicamente verifica se a sessao está ativa fechando o browser ou a pagina, caso nao esteja ,faz o update na bd para o estado = 'offline'...poderia me ajudar?


<!--js--> <script type="text/javascript" src="JQuery/jquery-1.11.3.js"></script> <script type="text/javascript"> setInterval(function(){ $.post("quando_offline.php", {contar: '',} , 2000); </script>


quando_offline.php
<?php session_start(); include 'Ligar BaseDados/Ligacao_BaseDados.php'; if(isset($_POST['contar'])){ /** ATUALIZAR ONLINE **/ if(isset($_SESSION['id'])) { // Se já existir a sessão $update = $ligacao->query("UPDATE sessoes_utilizador SET estado = 'online' WHERE id_utilizador = '".$_SESSION['id']."' ") or die(mysqli_error()); } else { // Se não $update = $ligacao->query("UPDATE sessoes_utilizador SET fim_sessao = NOW , estado = 'offline' WHERE id_utilizador = '".$_SESSION['id']."' ") or die(mysqli_error()); } // Fimse $select = $ligacao->query("SELECT * FROM sessoes_utilizador"); $mostar = mysqli_fetch_array($select); echo $mostar['estado']; } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: online vs offline

20-10-2016 11:48

Se você for fazer por JavaScript vai precisar manter um documento aberto ou um script rodando em algum documento.

A base de atualizar de tempo em tempo você pode fazer assim:

<script src="jquery.js"></script> <script> Atualiza = function() { jQuery.ajax({ type: "POST", url: "teste2.php", dataType: "html", data: "contar=", success: function(response){ jQuery("#retorno").html(response); }, error: function(){ alert("Ocorreu um erro durante a requisição"); } }); setTimeout(function() { Atualiza(); },10000); } $(document).ready(function() { Atualiza(); }); </script> <div id="retorno"></div>

Nesse exemplo a cada 10 segundos vai jogar o conteúdo do arquivo teste2.php na div. Ai no caso é só você trabalhar os valores que você tem de SESSION e da atualização do banco de dados.
1
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 258
Sexo: Masculino

Re: online vs offline

21-10-2016 08:57

entao e para alem de javascript ,qual o que voce recomenta? somente em php, seria mais viavel, pensei que em javascript fosse mais dinamico....pode me fazer um exemplo alternativo?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: online vs offline

21-10-2016 09:02

Tem um modo de fazer via query mysql. Funciona salvando o tempo em que acessou o documento e se passar determinado tempo apaga a session no BD. Aí tem que fazer essa verificação em algum documento. É quase o mesmo efeito do jquery.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 258
Sexo: Masculino

Re: online vs offline

21-10-2016 09:04

pode postar o exemplo por favor...?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: online vs offline  #resolvido

21-10-2016 14:50

É o mesmo exemplo do script desse artigo Usuarios-on-lineRecorde-de-usuarios-on-line_15_594.html

Há um banco de dados que armazena os usuários online. E há um arquivo que a cada acesso verifica se o tempo mínimo de permanência foi alcançado. Se sim, apaga o usuário do banco de dados.
1
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado