Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Usuários Online


mvm*
 Compartilhar

Posts Recomendados

Usuários Online

 

Bem gente, vamos hoje fazer um sistema simples de Usuários Online:

 

Lógica

 

Bem, antes de você fazer qualquer programa não importando a linguagem, é necessário você ter uma noção básica do funcionamento do seu script, por exemplo, quero fazer um form mail, opa, já sei que preciso receber as informações de um formulário e mandar com a função mail().

Agora, quanto aos Usuários Online a lógica é que o programa verifique na hora os IPs dos usuários no site e que os IPs antigos sejam deletados, após esse processo só falta contar o numero de Usuários Online...

 

O que vou prescisar?

 

Bem, vamos usar o DB com a tabela chamada usersonline, ela vai ter as colunas: ip,time. A coluna ip gravará o IP do visitante para que ele não se repita, a coluna time determinará a hora em que o visitante deu seu ultimo clique para podermos deleta-lo no caso dele passar cerca de 5 minutos inativo.

 

Tabela MySQL

 

Vamos criar nossa tabela com o seguinte código:

CODECREATE TABLE usersonline (ip VARCHAR(255) NOT NULL,TIME INT(12) NOT NULL);

 

O código

 

Agora vamos criar o arquivo que vai retornar os dados:

CODE<?php

//Config:

$local ="localhost";

$user ="root"; //Usuário do DataBase

$senha=""; //Senha do DataBase

$db =""; //DataBase

$tempmins = 5; //minutos para inatividade de um usuário

//Código:

$ip=$REMOTE_ADDR; //pega o IP do visitante

$res = mysql_connect("$local", "$user", "$senha") or die ("Erro de conexão"); //conecta com o DB

mysql_select_db($db,$res); //seleciona o DB

if(mysql_num_rows(mysql_query("SELECT * FROM usersonline WHERE ip='".$ip."'"))>0) { //verifica se o ip ja esta no DB

//ja que ele está é necessario dar um update no time para que ele não seja deletado rapdamente

mysql_query('UPDATE usersonline SET time="'.time().'" WHERE ip="'.$ip.'"');

} else {

//ele não está no DB, então prescisamos inseri-lo

mysql_query('INSERT INTO usersonline (ip,time) VALUES ("'.$ip.'","'.time().'")');

}

mysql_query('DELETE FROM usersonline WHERE time<'.(time()-($tempmins*60))); //deleta os ips com mais de 5 minutos

echo mysql_num_rows(mysql_query("SELECT * FROM usersonline")).' usuários online'; //Mostra na pagina os usuarios online

?>

 

Espero que gostem e comentem.

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.