PHP - Sistema de usuários online

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.

Por | @nmuller99 Programação
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);
?>

    

    
    
        
    
         while($RF = mysql_fetch_array($RS))
    {
        ?>
        
            
        
             }
?>

    

IPs online agora:
        
IP


A saída deste código será:
PHP - Sistema de usuários online

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 "

Não foi possível estabelecer uma conexão com o servidor. Favor Contatar o Administrador.

";
   exit;
}

if(!($dbConnection = @mysql_select_db($ACONFIG["s_dbname"]))) {
   echo "

Não foi possível estabelecer uma conexão com a base de dados. Favor Contatar o Administrador.

";
   exit;
}
?>


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

O arquivo zipado está para donwload abaixo.

Mais sobre: usuarios online users php
Share Tweet
Recomendado
Comentários
Destaquesver tudo
  • ASSINE NOSSA NEWSLETTER

    As melhores publicações no
    seu e-mail

  • Preencha para confirmar