Olá! Sexta Feira, 10 de Fevereiro de 2012.



Dicas CódigoFonte.net
Quarta Feira, 06 de Julho de 2005

Sistema de Usuários on line

> Fundamentos:

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...

(*) Ter uma hospedagem com suporte à php!

Ingredientes?

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:

CREATE 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:

<?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
?> 


Caso hajam dúvidas, entre em contato que mando o arquivo "config.php"

Abraços,
Emilio n. (emilio@hpmaster.ibox.com.br) - (www.hpmaster.ibox.com.br)

Comentários do artigo [Novo comentário]

Uanderson - 12 de Setembro de 2011 - 21:42
Oii. estou com duvidas. Este Sistema de Usuários on line, não estou conseguindo fazer em meu site. www.aprendizmu.com.nu
me ajude por favor. Obrigado
Guilherme Lima - 28 de Novembro de 2011 - 15:21
Criei um sistema de usuarios online baseado em txt, ainda está em fase de teste mas funciona perfeitamente, veja http://bit.ly/t5NFLI
Para adicionar um comentário você deve efetuar o login


Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:






CodigoFonte.net » CodigoFonte.eti.br » Compre De Tudo » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010

Procurando Notebooks, Câmeras Digitais, iPhones?

CompreDeTudo.com