PHP - Sistema de usuários online

Publicado em: 12/06/2008  |  PHP  |  Visualizações: 1.533  |  0 Comentário(s)
Olá caro leitor. A pedidos mostrarei hoje como criar um sistema de usuários online utilizando banco de dados.

Criaremos dois arquivos, um que será o include para você adicionar em suas páginas para gravar quem está online, e outro para mostrar quantos e quais IPs estão online. O sistema trabalha com banco de dados MySQL, utilizando a função time() do PHP.

Segue o script SQL para você rodar em seu site:
DROP TABLE IF EXISTS `acessos_online`;
CREATE TABLE IF NOT EXISTS `acessos_online` (
  `ip` varchar(255) NOT NULL default '',
  `TIME` int(12) NOT NULL default '0'
);


Agora vamos fazer o arquivo online.php que será o nosso include.
<?
include "conexao.php";

//Usuários online
$tempmins = 5;

$ip = $_SERVER['REMOTE_ADDR'];
$select = mysql_query( "SELECT * FROM acessos_online WHERE ip='".$ip."'" );
if( mysql_num_rows( $select ) > 0 )
{
mysql_query('UPDATE acessos_online SET time="'.time().'" WHERE ip="'.$ip.'"');
}
else
{
mysql_query('INSERT INTO acessos_online (ip,time) VALUES ("'.$ip.'","'.time().'")');
}

mysql_query('DELETE FROM acessos_online WHERE time<'.(time()-($tempmins*60)));
?>


Este código acima faz a inserção no banco de dados, do IP gravado. Ele registra o IP na variável $ip, faz uma busca no banco de dados para ver se existe o ip que o usuário está acessando. Se existir, ele faz um UPDATE na hora de acesso, assim a hora de acesso fica sendo renovada a cada clique que o usuário der no site. E caso não exista ele fará a inclusão no banco de dados. Logo após a inclusão ou alteração, ele deleta todos os ips onde o tempo for maior que o tempo mínimo guardado em nossa variável $tempmins que é de 5 minutos. Assim permanecendo online apenas os usuários que derem um clique a menos de 5 minutos atrás.

Agora vamos ao código que fará a demonstração no site de quantos e quais usuários estão online, que será o mostra.php:
<?
include "conexao.php";

$SQL  = "SELECT * FROM acessos_online ORDER BY ip";
$RS   = mysql_query($SQL);
?>
<table width="100%" style="float:left; border:1px solid #CCCCCC" align="center" cellpadding="4" cellspacing="1">
<tr bgcolor="#EFEFEF">
<td>
     <br /><br /><strong>IPs online agora:</strong> <?=mysql_num_rows($RS);?>
    </td>
</tr>
<tr bgcolor="#CCC">
    <td width="15%"><strong>IP</strong></td>
</tr>
<?

while($RF = mysql_fetch_array($RS))
{
?>
<tr bgcolor="#EFEFEF">
     <td><?=$RF['ip']?></td>
    </tr>
<?
}
?>
</table>


A saída deste código será:


Ainda segue o arquivo conexao.php:
<?
$ACONFIG = array();
$ACONFIG['s_dbhost'] = 'localhost';
$ACONFIG['s_dbname'] = 'dbname';
$ACONFIG['s_dbuser'] = 'usuario';
$ACONFIG['s_dbpass'] = 'senha';

if(!($serverConnection = @mysql_connect($ACONFIG['s_dbhost'], $ACONFIG['s_dbuser'], $ACONFIG['s_dbpass']))) {
   echo "<p align='center'>Não foi possível estabelecer uma conexão com o servidor. Favor Contatar o <a href='mailto:seuemail'>Administrador</a>.</p>";
   exit;
}

if(!($dbConnection = @mysql_select_db($ACONFIG['s_dbname']))) {
   echo "<p align='center'>Não foi possível estabelecer uma conexão com a base de dados. Favor Contatar o <a href='mailto:seuemail'>Administrador</a>.</p>";
   exit;
}
?>


Este é responsável pela conexao ao banco de dados.

O arquivo zipado está para donwload abaixo. Comente, qualquer dúvida poste em nosso fórum: www.ajudanaweb.com
Arquivo anexo: Clique aqui para download
compartilhe
  Dica: Confira todo nosso conteúdo de PHP no site.
Links patrocinados
Últimos artigos do editor

gerencia.jpg A falta de estrutura dos .
Por que sites e sistemas são.
cel.jpg Tudo sobre o iPhone 3G no.
iPhone é um smartphone desen.
internet.jpg Como assinar um RSS
RSS é um formato de distribu.
design.jpg Quando reciclagem digital.
Vejam o que vocês podem faze.
tecnologia.jpg Energia elétrica via Wire.
Recentemente a Intel introdu.
internet.jpg A guerra dos browsers
O Navegador, também conhecid.
Opinião do leitor:
0 Comentário(s)
Acesso restrito
Destaques
Como assinar um RSS Como assinar um RSS
Aprenda a assinar um blog/site utilizando o agregador de notícias em formato RSS
Peixe Grande 2008 Peixe Grande 2008
O Oficina da Net está este ano participando do Projeto Peixe Grande 2008 na categoria de Blog. Ajude-nos vote!
iPhone 3G no Brasil iPhone 3G no Brasil
O smartphone da Apple chegou ao Brasil com a tecnologia de terceira geração de telefonia.
Links patrocinados
Autor
Tags
Artigos Relacionados
Novos Artigos
Notícias Relacionados
Assine nosso RSS

© 2005 - 2008 - Oficina da Net - v 3.0 - É proibida a reprodução parcial ou completa do conteúdo deste site sem autorização por escrito. Resolução adequada: 1024x768px.