-
Contador de visitas
1° - Crie um banco de dados acesso;
2° - Dentro do banco de dados, crie uma tabela com o nome de acesso;
3° - Na tabela acesso, crie uma coluna "contador" com datatype de varchar e um lenght de 255;
4° - Faça a conexão do MySql em um arquivo (config.php por exemplo):
4° -> B :
mysql_connect("SEU_HOST","USUÁRIO MYSQL","SENHA MYSQL") or die (mysql_error());
mysql_select_db("acesso") or die (mysql_error());
5° - Na página principal (a que vai atualizar o contador), vc inclui o arquivo de configuração:
include("config.php");
Abaixo, vc coloca assim:
Código PHP:
$conta = mysql_query("UPDATE acesso SET contador(+1)");
$valor = mysql_query("SELECT * FROM acesso");
while ($vl = mysql_fetch_array($valor)){
$total = $vl['contador'];
Na parte que vc vai colocar o resultado da contagem vc coloca assim:
Já tivemos <?=$total?> visitas.
PS.: Fiz o exemplo em mysql_fetch_array, pq caso queiram incrementar, colocando a data do ultimo acesso ao site, fica mais facil de organizar os resultados.
Créditos do tutorial: mend3
Dúvidas é só postar.
-
existe algum modo sem ser com banco de dados?
ou ate por mssql.
-
Styllus tem essa classe que eu fiz a um bom tempo atraz...
Código PHP:
<?php
class Status{
protected $ArchiveContador;
protected $ArchiveOnline;
public function setArchiveContador($Archive){
$this->ArchiveContador = $Archive;
return $this->ArchiveContador;
}
public function setArchiveOnline($Archive){
$this->ArchiveOnline = $Archive;
return $this->ArchiveOnline;
}
protected function Read(){
$this->CheckArchive();
$fileOpen = file($this->ArchiveContador);
return $fileOpen[0];
}
public function showVisit(){
$count = $this->Read();
$count++;
$fileOpen = fopen($this->ArchiveContador, "w+");
fputs($fileOpen, $count);
fclose($fileOpen);
return number_format($count, 0, ".", ".");
}
protected function CheckArchive(){
if(!file_exists($this->ArchiveContador)){
$fileOpen = fopen($this->ArchiveContador, "w+");
fputs($fileOpen, 0);
fclose($fileOpen);
}
}
public function Verify($ipActualy){
$archive = @file($this->ArchiveOnline);
$reg = count($archive);
for($i=0;$i<$reg;$i++){
list($ip) = explode("|", $archive[$i]);
if($ip != $ipActualy)
continue;
return $i;
}
}
public function Clear(){
$dateActualy = date("YmdHis");
$archive = @file($this->ArchiveOnline);
$archive2 = @fopen($this->ArchiveOnline,"w+");
$reg = count($archive);
for($i=0;$i<$reg;$i++){
list($ip, $date) = explode("|", $archive[$i]);
if($date > $dateActualy){
fwrite($archive2, "$ip|$date");
}
}
fclose($archive2);
}
public function Save(){
$ipActualy = $_SERVER['REMOTE_ADDR'];
$dateActualy = (date("YmdHis")+200);
$archive = fopen($this->ArchiveOnline,"a");
fwrite($archive, "$ipActualy|$dateActualy\n");
fclose($archive);
}
public function Update($line){
$ipActualy = $_SERVER['REMOTE_ADDR'];
$dateActualy = (date("YmdHis")+200);
$archive = @file($this->ArchiveOnline);
$archive2 = @fopen($this->ArchiveOnline,"w+");
$reg = count($archive);
for($i=0;$i<$reg;$i++){
list($ip, $date) = explode("|",$archive[$i]);
if($i == $line)
fwrite($archive2, "$ipActualy|$dateActualy\n");
else
fwrite($archive2, "$ip|$date");
}
fclose($archive2);
}
public function Online(){
$archive = @file($this->ArchiveOnline);
$reg = count($archive);
return $reg;
}
public function showOnline(){
$line = $this->Verify($_SERVER['REMOTE_ADDR']);
if(is_null($line)){
$this->Clear();
$this->Save();
echo $this->Online();
}else{
$this->Update($line);
$this->Clear();
return number_format($this->Online(), 0, ".", ".");
}
}
}
?>
Modo de usar..
1° Chama a classe em qualquer arquivo com...
Código PHP:
require_once 'nome do arquivo';
2° Estancia a classe..
Código PHP:
$visitas = new Status;
3° Seta onde serão quardados os arquivos txt a serem usados
Código PHP:
$visitas->setArchiveContador('logs/contador.txt');
$visitas->setArchiveOnline('logs/online.txt');
4° Adiciona os metodos a onde quer que os contadores aparecem
Código PHP:
$visitas->showOnline();
$visitas->showVisit();
E pronto feito todos etapas ele ja vai ta contando quantas pessoas tem online no site, e quantas vezes seu site foi acessado....
Espero que ajude.