Contador de Visitas sin cookies en php que verifica IP

A continuación, te enseñaremos a crear un contador de visitas web el cual verifica la ip del usuario y la hora de la ultima visita de esa ip en caso que ya haya estado en la web. 
Contador de Visitas sin cookies en php
En primer lugar, debemos tener un archivo el cual llamaremos conexion.php el cual nos conecta a la base de datos.
 
Código:

-------------
<?php
$mysql_host = "localhost";
$mysql_database = "base_de_datos";
$mysql_user = "Usuario";
$mysql_password = "Password";
$con = mysql_connect($mysql_host, $mysql_user, $mysql_password);
mysql_select_db($mysql_database, $con);
?>
-------------

En este fichero creamos la conexión a la base de datos y la asignamos a una variable para después no estar repitiendo el código. donde localhost va el host donde esta hospedada la base de datos, si estás trabajando el php en el mismo servidor que la base de datos entonces debes dejarlo como localhost, en el caso contrario deberías poner el host adecuado.
 
Después asignamos a la variable $con todos los datos para conectar y asignamos la base de datos.

Después de tener listo el archivo de conexión vamos a crear la tabla donde se guardarán las ips en nuestra base de datos. debemos tener creada nuestra base de datos y un hosting que permita php recomendable versión 5 o mayor.
 
Codigo:

----------
CREATE TABLE `contador` (
  `id` int(10) NULL auto_increment,
`IP` varchar(15) NULL,
`hora` varchar(8) NULL,
`fecha` varchar(20) NULL,
`segundos` varchar(30) NULL,
    KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
----------

La tabla la puedes crear fácilmente con el PHPAdmin.
 
Ahora vamos a lo que es en si el scrip que nos contara la visita y mostrara la consulta.
 
Codigo:
 
----------
<?
require('conexion.php');
//se requiere el archivo para validar los datos de usuario de bdd para conectar 
$IP = getenv('REMOTE_ADDR');
$fecha = date("j \d\e\l n \d\e Y");
$hora = date("h:i:s");
$segundos = time();
$can = "3600"; //El tiempo para volver a contar la misma visita en segundos: 3600 es una hora 60min x 60seg
$resta = $segundos-$can;
//se asignan la variables 
$sql = "SELECT segundos, IP ";
$sql.= "FROM contador WHERE segundos >= $resta AND IP LIKE '$IP' ";
$es = mysql_query($sql, $con) or die("Error al leer base de datos: ".mysql_error);
//se buscan los registros que num de seg mayor a num de seg hace una hora e IP 
if(mysql_num_rows($es)>0)
{//no se cuenta la visita 
}
else
{
$sql = "INSERT INTO contador (id, IP, fecha, hora, segundos) ";
$sql.= "VALUES ('','$IP','$fecha','$hora','$segundos')";
$es = mysql_query($sql, $con) or die("Error al grabar un mensaje: ".mysql_error);
}
//creamos el condicionamiendo para loguearlo o no. 
$sql = "SELECT * ";
$sql.= "FROM contador WHERE id ";
$es = mysql_query($sql, $con) or die("Error al leer base de datos: ".mysql_error);
$visitas = mysql_num_rows($es);
$men=$men .
"<table width='26%' border='0' height='20' >" . chr(10);
$men=$men . "<tr>" . chr(10);
$men=$men . "<td><font size=2 color=#FFFFFF>© $visitas </font></td>" . chr(10);
$men=$men .
"</tr>" . chr(10);
$men=$men . "</table>" . chr(10);
?>
----------
 
Después, en cualquier página que quieras que nuestro contador tenga en cuenta le agregamos el siguiente código.
 
----------
<? 
require('contador.php'); 
echo $men; 
?>
----------
 
Observaciones:

Los dos archivos conexion.php y contador.php deben ir en la misma carpeta.
 
Si tienen algún problema me avisan y les ayudo en lo que pueda.

Pagina de prueba aqui.

También les dejo los archivos para que simplemente los descarguen y los implementen.
Descargar:
Acceder a esta URL (/files/visitas-en-php.zip)Conntador visitas[Conntador visitas]

Escribir un comentario

Al comentar en este sitio estás aceptando nuestra política de privacidad y cookies.

Comentarios  

# Acram 13-01-2015 16:08
Me ha sido muy util, muchas gracias!
Citar
# Maxi 06-11-2013 10:06
Cito a andrea:
hola, se que es tarde, pero por si de prooonto aun me puedes responder.....pero como hago para que el contador cuente apartir de 11.000?? Gracias


Quisiera creer que cuando vas a mostrar la variable $visitas tenes que hacer la suma de 11.000 más lo que dió $visitas. Ejemplo:

Si visitas devuelve 150 tendrías que hacer

$iniciaen = 11000;
$visitas = ($iniciaen+$vis itas);
Citar
# Ricardo 14-08-2013 21:20
buen sitio pero seria mejor si dejaras un link de descarga con ya todo hecho, algunos somos peresosos y lo ocupamos descargar sin crear archivos ni nada XD, Es solo un consejo péro buen sitio :DD!
Citar
# andrea 14-12-2012 13:22
hola, se que es tarde, pero por si de prooonto aun me puedes responder.....p ero como hago para que el contador cuente apartir de 11.000?? Gracias
Citar
Facebook Mundonets Twitter Mundonets Google Plus Mundonets