Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17589
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Usuários on-line

11-05-2007 17:25

Esse é um contador de usuários online em PHP com MySQL.

O objetivo desse script é armazenar o IP do visitante ao entrar no documento, e verificar se o IP já está armazenado no banco de dados, estando, mantém o IP armazenado, não estando, é gravado.

Após 60 segundos (tempo definido na variável $segundos) o IP é deletado do banco de dados.

O script tem como base uma tabela chamada: dados, com os campos: ip (varchar (20)) e timestamp (varchar (10))

Veja o código abaixo:

<?php // dados de conexão // $conexao = mysql_connect("localhost", "login", "senha") or die(mysql_error()); $db = mysql_select_db("bancodedados"); ?> <?php // obtendo todos os dados da tabela // $selec = "SELECT * FROM dados"; $exec = mysql_query($selec, $conexao) or die(mysql_error()); $total = mysql_num_rows($exec); ?> <?php // timestamp para gravação no banco de dados // $timestamp=time(); // ip para gravação no banco de dados // $ip = $_SERVER['REMOTE_ADDR']; // usado para criar o $timeout // $segundos = 60; // usado para retirar ips antigos do banco de dados // $timeout = $timestamp-$segundos; while($dados=mysql_fetch_array($exec)) { // pegado os dados do banco de dados // $timestamp_bd = $dados['timestamp']; $endereco_ip = $dados['ip']; // mensagem para o ip online // echo "<font color='green'><b>$endereco_ip</b></font> está ON<br>"; // caso o IP esteja a + 60 segundos ($segundos) no documento, deleta // $limpa="DELETE FROM dados WHERE timestamp<$timeout"; mysql_query($limpa) or die(mysql_error()); } // total de usuários online // echo "total de $total usuário(s) online.<br>"; ?> <?php // verificando se ip atual do usuário já está gravado // $selecV = "SELECT * FROM dados WHERE ip='$ip'"; $execV = mysql_query($selecV, $conexao) or die(mysql_error()); $totalV = mysql_num_rows($execV); // estando, não faz nada // if($totalV>0) { echo ""; } else { // não estando, grava // $insertadmin="INSERT into dados (ip,timestamp) values('$ip','$timestamp')"; mysql_query($insertadmin) or die(mysql_error()); } // fechando a conexão // mysql_close($conexao); ?>

0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado