Hola a todos bakunos, hoy le traigo una pequeña calse hecha en php para tener un contador en nuestra web sin depender de nadie bueno primero les dejos la tabla que deben de crear en el mysql
una vez hecha la tabla debemos crear un archivo php donde pondremos el codigo de la clase que llevara el conteo de las visitas
ahora para que este codigo funcione deben primeor descargar las clases de adoddb para php del siguiente link http://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-510-for-php5/adodb510.tgz/download
una vez descargado lo descomprimimos en la misma carpeta que el archivo que creamos
ahora para usar la clase lo hacemos asi
y con eso realizara el conteo de visitas reales a nuestra web
espero les sirva o al menos les de una idea para ahacer algo mejor.
espero sus comentarios y sugerencias :eolo::metal:
bueno aqui pueden ver mi clase contador en funcionamiento www.laitingdelpacifico.com
PHP:
CREATE TABLE `contador` (
`id` int(11) NOT NULL auto_increment,
`ip` varchar(15) default NULL,
`hora` varchar(8) default NULL,
`fecha` varchar(20) default NULL,
`horau` varchar(10) default NULL,
`diau` char(3) default NULL,
`aniou` varchar(4) default NULL,
`referido` varchar(400) default NULL,
KEY `id` (`id`)
)
PHP:
<?
include ('adodb5/adodb.inc.php');
class Contador{
var $TotalVisitas=0;
var $UsarCookies=true;
function Contador(){
$this->UsarCookies=$this->UsaCookies();
//if ($this->UsarCookies) $this->setCookie();
$this->CheckBD();
}
function SetCookie(){
$dias=3;
$dias=60 * 60 * 24 * $dias;
setcookie('visita', date('z'), time() + $dias); //date("dmY H:i:s") = 29032010 19:42:13
}
function GetCookie()
{
if (isset($_COOKIE['visita'])) return $_COOKIE['visita'];
else return -1;
}
function tabla_existe($nombre_tb) {
$Respuesta=false;
$conn = &ADONewConnection('mysql');
$conn->Connect();
$QUERY='SHOW TABLES';
$recordSet = &$conn->Execute($QUERY);
if (!$recordSet)
print $conn->ErrorMsg(); //En caso de error
else
{
//print_r($recordSet->fields);
while (!$recordSet->EOF)
{
if ($nombre_tb==$recordSet->fields[0] )$Respuesta=true;
//echo $recordSet->fields[0] .'</br>';
$recordSet->MoveNext(); //Saltar al siguiente registro
}
}
$recordSet->Close(); // opcional
$conn->Close(); // opcional
return $Respuesta;
}
function CrearContador()
{
$TotalLetras= strlen($this->TotalVisitas);
$Cadena='';
$Cadena= $this->TotalVisitas;
$Numeros ='';
for ($j=0;$j<$TotalLetras;$j++){
$Numeros.='<img src="Imagenes/CONTADOR/conta_'.substr($Cadena,$j,1).'.png" width="24" height="24" align="bottom">';
}
$men='<div id="contador">'.$Numeros.'</div>';
echo $men;
}
function UsaCookies(){
setcookie('TEST', '1', time() + (60 * 2));
if(isset($_COOKIE['TEST'])) return false;//echo no Permite el uso de cookies "
else return true;//permite usar cookies "
}
function CheckBD(){
//se requiere el archivo para validar los datos de usuario de bdd para conectar
$DondeViene =$_SERVER['HTTP_REFERER'];
$ip = $_SERVER['REMOTE_ADDR'] ;
$fecha = date("j \d\e\l n \d\e Y");
$hora = date("h:i:s");
$horau = date("h");
$diau = date("z");
$aniou = date("Y");
$conn = &ADONewConnection('mysql');
$conn->Connect();
$QUERY='SELECT aniou, diau, horau, ip FROM contador WHERE aniou LIKE \''.$aniou.'\' AND diau LIKE \''.$diau.'\' AND horau LIKE \''.$horau.'\' AND ip LIKE \''.$ip.'\'';
$recordSet = &$conn->Execute($QUERY);
if (!$recordSet)
print $conn->ErrorMsg(); //En caso de error
else
{
if ($this->UsarCookies)
{
$Noregistrado=false;
$CookieUser=$this->GetCookie();
if (-1< $CookieUser)
{
if ($CookieUser < date('z')){
$Noregistrado =true;}
}else{$Noregistrado =true;}
}else $Noregistrado=false;
if(0==$recordSet->RecordCount() || $Noregistrado)
{
$valores=array();
$valores['ip']=$ip;
$valores['fecha']=$fecha;
$valores['hora']=$hora;
$valores['horau']=$horau;
$valores['diau']=$diau;
$valores['aniou']=$aniou;
$valores['referido']=$DondeViene;
$tabla='contador';
$insertSQL = $conn->GetInsertSQL($tabla, $valores);
$conn->Execute($insertSQL );
$this->SetCookie();
}
/*
if ($recordSet->RecordCount()>0) echo 'ip registrada';
if ($Noregistrado) echo 'No habia cookie'; else echo 'false';
if ($this->UsarCookies) echo 'si usa cokiee' ; else echo 'no usa cookie';*/
}
$QUERY='SELECT ID FROM contador ';
$recordSet = &$conn->Execute($QUERY);
$visitas = $recordSet->RecordCount();
$recordSet->Close(); // opcional
$conn->Close(); // opcional
$this->TotalVisitas=$visitas;
}
}
?>
una vez descargado lo descomprimimos en la misma carpeta que el archivo que creamos
ahora para usar la clase lo hacemos asi
PHP:
include ('Nombre detu archivo php');
$cuenta = new Contador();
$cuenta->CheckBD();
$cuenta->CrearContador();
espero les sirva o al menos les de una idea para ahacer algo mejor.
espero sus comentarios y sugerencias :eolo::metal:
bueno aqui pueden ver mi clase contador en funcionamiento www.laitingdelpacifico.com