Contador de Visitas
Añadir un contador de visitas html a su página web
Como añadir un contador de visitas html a tu página web, el contador más avanzado para llevar estadísticas completas de los accesos a tu página web. Con este contador de visitas puedes obtener todos los datos relacionados con el usuario que visita tu web: IP del visitante, longitud, latitud, ciudad, código postal, hora de conexión y tiempo en cada página que pasa.
index.php
<!DOCTYPE html>
<html>
<head>
<title>Contador de visitas</title>
</head>
<body>
/* Si existe la sessión de usuario añadir user_id para asociar visita a este usuario */
<input type="hidden" id="sessionuser" value="">
<h1>Contador!</h1>
</body>
<script src="//code.jquery.com/jquery.min.js"></script>
<script src="contador-de-visitas.js"></script>
</html>
contador-de-visitas.js
var u='contador.php';$.ajax({type:"POST",url:u,data:{key:document.domain,web:window.location.href,usuario:$('#sessionuser').val()}});$(window).bind('beforeunload',function(){$.ajax({type:"POST",url:u,data:{key:document.domain,web:window.location.href,type:1}})});var myVar=setInterval(function(){myTimer()},60000);function myTimer(){$.ajax({type:"POST",url:u,data:{key:document.domain,web:window.location.href,usuario:$('#sessionuser').val(),type:2}})}
contador.php
<?php
// CONEXION MYSQL
$host_db = "localhost";
mysql_connect('localhost', 'usuario', 'password');
mysql_select_db('basededatos');
mysql_query("SET NAMES 'utf8'");
// FUNCIONES
function get_real_ip(){
if (isset($_SERVER["HTTP_CLIENT_IP"])){
return $_SERVER["HTTP_CLIENT_IP"];
}elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
return $_SERVER["HTTP_X_FORWARDED_FOR"];
}elseif (isset($_SERVER["HTTP_X_FORWARDED"])){
return $_SERVER["HTTP_X_FORWARDED"];
}elseif (isset($_SERVER["HTTP_FORWARDED_FOR"])){
return $_SERVER["HTTP_FORWARDED_FOR"];
}elseif (isset($_SERVER["HTTP_FORWARDED"])){
return $_SERVER["HTTP_FORWARDED"];
}else{
return $_SERVER["REMOTE_ADDR"];
}
}
function obtenerdominio($dominio){
$dominio = trim($dominio);
$dominio = str_replace(array("http://", "www."),'',$dominio);
$dominio = explode("/", $dominio);
$dominio = $dominio[0];
return $dominio;
}
function obtenerpagina($dominio){
$dominio = explode("/",$dominio);
return end($dominio);
}
// FIN FUNCIONES
$ipadress = get_real_ip();
$hostname = gethostbyaddr($ipadress);
$useragent = $_SERVER['HTTP_USER_AGENT'];
$keyweb = $_POST['key'];
$web = obtenerdominio($_POST['web']);
$pagina = obtenerpagina($_POST['web']);
$usuario = $_POST['usuario'];
$type = intval($_POST['type']);/*0 entrada, 1 salida*/
if($keyweb==$web){
$str_datos = file_get_contents("http://api.ipinfodb.com/v3/ip-city/?key=45abd2951ee0a74973b579544185c02820ca02a4a692f615786a68d9e7e8903a&ip=".$ipadress."&format=json");
$datos = json_decode($str_datos,true);
$ciudad = $datos["cityName"];
$pais = $datos["countryName"];
$cp = $datos["zipCode"];
$latitud = $datos["latitude"];
$longitud = $datos["longitude"];
$time = $datos["timeZone"];
if(empty($type)){
$reg = mysql_query("INSERT INTO contador (ip, host, navegador, ciudad, pais, cp, latitud, longitud, time, fecha, usuario, web, pagina, type) VALUES ('$ipadress', '$hostname', '$useragent', '$ciudad', '$pais', '$cp', '$latitud', '$longitud', '$time', NOW(), '$usuario', '$web', '$pagina', '0')") or die(mysql_error());
}else{
$reg = mysql_query("INSERT INTO contador (ip, host, navegador, ciudad, pais, cp, latitud, longitud, time, fecha, usuario, web, pagina, type) VALUES ('$ipadress', '$hostname', '$useragent', '$ciudad', '$pais', '$cp', '$latitud', '$longitud', '$time', NOW(), '$usuario', '$web', '$pagina', '$type')") or die(mysql_error());
}
}
}
mysql.sql
DROP TABLE IF EXISTS `contador`;
CREATE TABLE `contador` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`ip` varchar(20) DEFAULT NULL,
`host` varchar(50) DEFAULT NULL,
`navegador` varchar(250) DEFAULT NULL,
`ciudad` varchar(50) DEFAULT NULL,
`pais` varchar(20) DEFAULT NULL,
`cp` varchar(6) DEFAULT NULL,
`latitud` varchar(15) DEFAULT NULL,
`longitud` varchar(15) DEFAULT NULL,
`time` varchar(9) DEFAULT NULL,
`fecha` datetime NOT NULL,
`usuario` int(11) NOT NULL,
`web` varchar(100) DEFAULT NULL,
`pagina` varchar(100) DEFAULT NULL,
`type` int(2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;