Olá galera, posto para voces um pequeno tutorial para criar um contador de usuários on-line no site:
Primeiro passo será criar um banco de dados ou usar o que você já tem disponível
Crie um banco de dados com o nome de "contador"
Segundo passo será criar uma tabela no banco de dados:
Código PHP:
CREATE TABLE `online` (
`id` int(11) NOT NULL auto_increment,
`ip` varchar(20) NOT NULL,
`tempo` int(12) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Após executados os passos acima vamos para a criação da conexão com o banco de dados:
agora vamos montar nossa pagina de conexão:
Código PHP:
<?php
mysql_connect("localhost", "root", "") or die (msql_error());
mysql_select_db("contador") or die (mysql_error());
?>
Salve o arquivo com o nome de: conexão.php
Vamos agora para o arquivo principal do sistema:
Código PHP:
<?php
//faça a inclusão da página de conexão criada logo acima
include "conexão.php";
//determina um tempo para a variável $tempo
$tempo = time();
// pega o IP do usuário
$ip = $_SERVER['REMOTE_ADDR'];
//faz uma consulta para verificar se o ip já existe no banco de dados
$verifica = mysql_query("SELECT * FROM online WHERE ip ='$ip'");
//retorna a quantidade de linhas da consulta ou seja, pode retornar 0 ou 1 linha
$linhas = mysql_num_rows($verifica);
//se não existir o ip no banco ele grava um com um tempo determinado
if($linhas == 0)
{
// gravando o IP e o tempo no DB
$acrescenta = mysql_query("INSERT INTO online (ip, tempo) VALUES ('$ip','$tempo')");
}
else
{
// se o IP já existe ele o pega e atualiza o tempo no DB no IP selecionado
//pega o IP retornado da consulta
$ip = mysql_result($verifica,0,'ip');
//faz um update para o registro do IP existente
$atualiza = mysql_query("UPDATE online SET tempo ='$tempo' WHERE ip='$ip'");
}
//deleta a linha que não foi atualizada no tempo de 40 segundos
mysql_query("DELETE FROM online WHERE tempo <'$tempo'".-"40");
//faz uma consulta para mostrar quantos estão on-line
$online = mysql_query("SELECT * FROM online");
//retorna o número de linhas que será a quantidade de usuários on-line nesse momento
$agora = mysql_num_rows($online);
if($agora==1)
{
//para ficar mais amigável se tiver somente 1 pessoa on-line
echo "Apenas eu estou on-line";
}
else
{
//exibe todos os usuários que estão on-line
echo "Temos ".$agora." usuarios on-line.";
}
?>
Salve-o arquivo com o nome de: online.php
Pronto agora é só fazer um include desse arquivo onde quer que apareça a mensagem.
Atenciosamente,
Nicolas Silva