Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Sao_Paulo' for 'BRT/-3.0/no DST' instead in /home/portaldd/public_html/admin/classarticles.php on line 286
Pessoas onlinePor: Leandro Barral | Publicado em: 12.06.2005 | Visualizações: 11103 Mais uma vez estarei ensinando algo que muitas pessoas estão me pedindo, um script que mostra o número de usuarios ativos no momento em seu Site. [Let's Work!]'
Primeiramente estaremos criando a tabela:
SQL
CREATE TABLE `usersonline` ( `ip` varchar(255) NOT NULL default '', `tempo` int(12) NOT NULL default '0' ) TYPE=MyISAM;
Agora o código responsável por captar os dados e mostrar o numero de pessoas online: Obs: O código está todo comentado.
PHP
<? //Configuração do banco de dados:
$host = "localhost"; //link para o seu mysql $user = "usuario"; //usuario do bando de dados $senha = "senha"; //senha do banco de dados $db = "nome"; //nome do banco de dados
//Fim da configuração
$tempmins = 5; //minutos para deletar um usuario do banco de dados (minutos inativo)
//Código:
@$ip= $REMOTE_ADDR; //pega o IP do visitante
$res = mysql_connect("$host", "$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 rapidamente mysql_query('UPDATE usersonline SET tempo="'.time().'" WHERE ip="'.$ip.'"'); } else { //se ele não está no DB, então prescisamos inseri-lo mysql_query('INSERT INTO usersonline (ip,tempo) VALUES ("'.$ip.'","'.time().'")'); } mysql_query('DELETE FROM usersonline WHERE tempo<'.(time()-($tempmins*60))); //deleta os ips com mais que o tempo estabelecido
echo mysql_num_rows(mysql_query("SELECT * FROM usersonline")).' usuário(s) online'; //Mostra os usuarios online
//Fim do código ?>
Espero que tenham gostado, até a próxima e qualquer sugestão: leandro.barral.wm@gmail.com |