- Sistema de contador de visitas por ip e data.
Como funciona?
- Verifica se o usuário já visitou.
- Caso tenha visitado não insere nada no banco.
- Caso não tenha visitado, insere nova linha no banco: id,ip,data
<?php
/*
@author : Eduardo Stuart
@version: 1.0
*/
/****************************************
--TABELA:
CREATE TABLE `visitantes` (
`id` INT(30) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`data` VARCHAR(10) DEFAULT '00/00/0000' NOT NULL,
`ip` VARCHAR(30) NOT NULL
) TYPE = MYISAM;
*****************************************/
class visitantes
{
var $ip;
var $data;
var $sql;
var $hostdb = "localhost";
var $userdb = "root";
var $passdb = "";
var $namedb = "banco";
var $table = "visitantes";
//Pega o ip
function pegaIP()
{
$this->ip = $_SERVER['REMOTE_ADDR'];
return $this->ip;
}
//Pega a data atual
function pegaData()
{
$this->data = date("d/m/Y");
return $this->data;
}
//Conecta com o banco.
function conectaDB()
{
$conecta = mysql_connect($this->hostdb,$this->userdb,$this->passdb) or die("Erro (1): ".mysql_error());
mysql_select_db($this->namedb,$conecta) or die(mysql_error());
}
//Seleciona o banco
function selecionaDB()
{
$ip = $this->pegaIP();
$data = $this->pegaData();
$tabela = $this->table;
$this->sql = mysql_query("SELECT ip,data FROM $tabela WHERE ip='$ip' AND data='$data'") or die("Erro (2): ".mysql_error());
return $this->sql;
}
//Insere novas visitas
function insereVisitante()
{
$this->conectaDB();
$ip = $this->pegaIP();
$tabela = $this->table;
$data = $this->pegaData();
$insere = mysql_query("INSERT INTO $tabela (id,ip,data) VALUES ('','$ip','$data')") or die("Erro (3): ".mysql_error());
return $insere;
}
//Caso nao tenha visitado = insere novo
function jaVisitou()
{
$this->conectaDB();
$this->selecionaDB();
if(!mysql_num_rows($this->sql) > 0)
{
$this->insereVisitante();
}
}
//Mostra o total de visitas
function mostraVisitantes()
{
$tabela = $this->table;
$this->conectaDB();
$pegaTodos = mysql_query("SELECT * FROM $tabela") or die("Erro (4): ".mysql_error());
$total = mysql_num_rows($pegaTodos);
echo $total." visitas";
}
//Chama funcoes
function chama()
{
$this->conectaDB();
$this->jaVisitou();
$this->mostraVisitantes();
}
}
$visitas = new visitantes();
$visitas->chama();
?>










