O que vamos fazer?
Um simples contador de visitas que utiliza MySQL.
Como funciona?
O sistema pega a data atual e o ip do visitante, após pegar esses dados ele verifica se os mesmo ja forma inseridos na tabela. (Verifica a data e o ip / Compara data atual + ip visitante com todos os registros da tabela)
- Criei uma classe chamada "visita", nela possui as funções:
visita();
Funciona como construtor, pega o ip do visitante e a data atual e armazena nas variaveis $ip e $data;
conectar();
Conexão com o banco
verificaVisitante();
Essa função faz as comparações, verifica se ja visitou. Caso não tenha visitado, insere novo registro.
imprime();
Seleciona todos os registros da tabela e imprime na tela
A tabela:
CREATE TABLE `visitas` (
`id` INT(50) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`ip` VARCHAR(11) NOT NULL,
`data` VARCHAR(10) DEFAULT '00/00/0000' NOT NULL
) TYPE = MYISAM;
O código:
ip=$ip;
//Pega a data atual
$this->data=date("d/m/Y");
}
/*
* conexao com banco
**/
function conectar()
{
$link= mysql_connect($this->hostdb,$this->userdb,$this->passdb)or die(mysql_error());
mysql_select_db($this->namedb,$link)or die(mysql_error());
}
/*
* verifica se o usuario ja visitou
**/
function verificaVisitante()
{
//Chama a funcao de conexao com db
$this->conectar();
/* Seleciona por ip e data */
$sql = mysql_query("SELECT ip,data
FROM ".$this->tabVisitas."
WHERE ip='".$this->ip."' AND data='".$this->data."'")or die(mysql_error());
/* Verifica se a selecao feita existe, caso nao exista insere novo */
if(!mysql_num_rows($sql)>0)
$insereVisita = mysql_query("INSERT INTO ".$this->tabVisitas."
(id,ip,data)
VALUES
('','".$this->ip."','".$this->data."')");
//else print("Ja visitou");
}
/*
* imprime numero de visitas
**/
function imprime()
{
//Chama conexao;
$this->conectar();
//Seleciona todos
$sql = mysql_query("SELECT * FROM ".$this->tabVisitas);
//Conta quantos foram selecionados
$total= mysql_num_rows($sql);
//Imprime numero de visitas (registros na tabela)
print("Visitas: ".$total);
}
}
//'Chama' a classe visita e ja pega o ip do visitante
$visita = new visita($_SERVER['REMOTE_ADDR']);
//Chama a funcao verificaVisitante();
//Ela verifica se por ip e data se o usuario ja visitou
$visita->verificaVisitante();
//Imprime o total de visitas (total de registros na tabela)
$visita->imprime();
?>
Está bem comentado, acho que não preciso dizer mais nada...
Caso tenha alguma duvida é só comentar ;)
ou entrar em contato
[email protected]
Bom uso! :)
http://blog.eduardostuart.com | http://www.eduardostuart.com