Ir para conteúdo

Arquivado

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

alysson122010

Contador de pessoas online em tempo real

Recommended Posts

Uma vez fiz um usando arquivo txt e biblioteca GD, toda vez que alguém acessa o site ele pega o IP e grava em um txt, depois uma classe conta quando ips diferentes existem no arquivo, e depois desenha a imagem com GD, veja o exemplo: http://bit.ly/t5NFLI

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou dar uma luz meu amigo.

 

cria uma tabela e executa qualquer vamos dar um nome de table_visitantes

 

os campos desta tabela

 

sessao

ip

url

tempo_final

 

 

então quando o usuário entra no site inicia uma sessão e vai para visitantes

 

depois em tempo x utiliza-se uma verificação se a sessão do id gerada ainda está no site com um select no campo X sessão de caso esteja atualiza a sessão de tempo para tabela do campo X para Quantidade padrao de tempo se não deleta da tabela o campo X e excluir a sessão X referente ao usuário X que saiu do site.

 

 

Bom essa e a ideia.

Não posto o código pronto para que você tente fazer, estude um pouco de sessão que e muito utilizada para deixar paginas dinâmicas e também proteção de páginas.

 

 

Este post solucionou a sua dúvida, peço que coloque como resolvido e me der um ponto positivo de reputação para que eu possa continuar ajudando outros colegas como você.
Caso não solucione o seu problema, peço que coloque a sua dúvida abaixo.
Att: João Paulo Sousa Supriano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achou melhor sessão para verificação de visitantes. Não discordando do nosso amigo Raoni.

Porque se o usuário saiu ou fecha o sistema e destruído a sessão e também vai para a tabela a session_id();

 

 

e depois faz um select no banco pelo campo X usando o session_id();

 

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo com sessões, talvez uma combinação de sessão e cookies... Não acho uma boa ideia usar banco de dados pra isso. Se o site tiver uma visitação razoável vai consumir muitos recursos do servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo alysson122010

Como o amigo paulinhosupriano indicou e é como eu uso com bd

 

1° crie a tabela:

CREATE TABLE  `visitante_online` (
  `idvisitante_online` int(10) unsigned NOT NULL auto_increment,
  `timestamp` int(15) unsigned NOT NULL,
  `ip` varchar(45) NOT NULL,
  `url` text NOT NULL,
  PRIMARY KEY  (`idvisitante_online`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

 

depois o arquivo contador_online.php

 

<?php
class conexao {
    public $host="localhost";
    public $user="root";
    public $pass="root";
    public $database="sua_base";
    public $connect="";
    public $select="";

function __construct() {
    $this->connect=mysql_connect($this->host,$this->user,$this->pass) or die (mysql_error());
    $this->select=mysql_select_db($this->database,$this->connect) or die (mysql_error());

    }
    }
    $conexao=new conexao();


class usuarios_online{
     public $timeoutseconds = "";
     public $timestamp = "";
     public $timeout = "";
     public $ip_usuario = "";
     public $url = "";
     public $verifica = "";
     public $result_verifica = "";
     public $deleta = "";
     public $resultado = "";
	 public $resultado_total = "";
     public $usuarios = "";
	 public $usuarios_total = "";


 function __construct() {

    //Tempo em segundos que irá apagar os ips inativos
    $this->timeoutseconds = 120;
    $this->timestamp=time();
    $this->timeout= $this->timestamp - $this->timeoutseconds;

    //Pega o ip do usuario
    $this->ip_usuario = $_SERVER['REMOTE_ADDR'];
    //Pega a o url da página que o uuário entrou
	$this->url = $_SERVER['REQUEST_URI'];

    //Verifica se o ip do usuário já se encontra
    $this->verifica = mysql_query ("SELECT ip FROM visitante_online WHERE ip = '$this->ip_usuario'");
    $this->result_verifica = mysql_num_rows($this->verifica);

    //Se for encontrado, faz a atualizaçao do url e do segundos que a pessoa entrou
    if ($this->result_verifica > "0"){
    mysql_query("UPDATE visitante_online SET url='$this->url',timestamp='$this->timestamp' WHERE ip='$this->ip_usuario'") or die (mysql_error());

    //Caso nao sejá encontrado ele insere o ip a url e o tempo
    } else {
    mysql_query("INSERT INTO visitante_online (timestamp, ip, url) VALUES ('$this->timestamp','$this->ip_usuario','$this->url')") or die (mysql_error());
    }

    //Deleta os ips que já passaram dos 300 segundos
    $this->deleta=mysql_query("DELETE FROM visitante_online WHERE timestamp < $this->timeout") or die (mysql_error());
    $this->resultado=mysql_query("SELECT DISTINCT ip FROM visitante_online WHERE url='$this->url'") or die (mysql_error());
	$this->resultado_total=mysql_query("SELECT DISTINCT ip FROM visitante_online") or die (mysql_error());

    }
    }
	$usuarios_online= new usuarios_online();


?>

 

depois é so incluir este arquivo nas páginas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pragmaticamente falando, você poderia usar o whosamungus, que funciona perfeitamente como um contador e ainda marca as páginas e histórico das visitas, é de graça e não consome recursos do servidor.

 

Se for apenas para a análise, o Google Analytics já possui um.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais tipo eu quero que o contador seja meu e que ele conte em tempo real por exemplo:

tem 3 online mesmo sem eu atualizar a pagina se entrar 1 pessoa ele mude pra 4 sem atualizar pagina seja em tempo real.

como faz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código e o PHP e o jquery você vai precisar dar uma olhadinha na documentação.

 

:D

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.