0

Usuários Online

criado por Marcos Paulo M. dos Santos em 16/01/2010 7:18pm
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...

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:

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

Agora vamos criar o arquivo que vai retornar os dados:

<?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");
mysql_select_db($db,$res); //seleciona o DB

//verifica se o ip ja esta no DB
if (mysql_num_rows(mysql_query("SELECT * FROM usersonline WHERE ip='".$ip."'"))>0) {
    //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().'")'); 
}

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

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

Depois faça as alteraçõe que jugar necessárias.

att,
kikoweb.com

Comentários:

Mostrando 1 - 1 de 1 comentários
Nelson disse:
Estava precisando de um script destes, Marcos,vou testar em meu site.
18/02/2010 12:20am (~14 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)