Gamarod JavaScript - Rutinas JavaScript Efectos javascript Codigos javascript Rutinas JavaScript

Programacion




Todo sobre php - Contador de visitas sin cookies

Contador de visitas sin cookies





Lo que voy a explicar a continuación es para crear un contador de visitas que verifica la IP del usuario y compara en la base de datos si en la última hora hubo alguna entrada con la misma IP, así discriminar o aceptar la cuenta de la visita. No voy a explicar como se crea una base de datos ni nada relacionado si tienes alguna duda sobre bases de datos deberás leerte algún manual al respecto.

En primer lugar debemos de tener una base de datos en la cual introducir la tabla siguiente.

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,
`segundos` varchar(30) default NULL,
KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=8;

La tabla bien puedes crearla a través de phpmyadmin o importando el SQL o en fin como te de la gana.

Una vez creada la tabla vamos al PHP, primero el código y luego vamos desglosando, si os parece.

configuracion.php
$bd_host = "localhost";
$bd_usuario = "user";
$bd_password = "contraseña";
$bd_base = "base_de_datos";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>

En este fichero vamos a crear el acceso a la base de datos y asignarla 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 estas trabajando el php en el mismo servidor que la bdd entonces debes dejarlo como localhost, en el caso contrario deberías poner el host adecuado.
Donde user el usuario, contraseña se entiende u base de datos el nombre de la base de datos.
Después asignamos a la variable $con todos los datos para conectar y asignamos la base de datos.
Ahora vamos a lo que es en si el script, igual que antes primero el código y luego desglosamos.

countbdd.php
require('configuracion.php');
//se requiere el archivo para validar los datos de usuario de bdd para conectar
$IP = $REMOTE_ADDR;
$fecha = date("j \d\e\l n \d\e Y");
$hora = date("h:i:s");
$segundos = time();
$can = "3600";
$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 .
"" . chr(10);
$men=$men . "" . chr(10);
$men=$men . "" . chr(10);
$men=$men .
"" . chr(10);
$men=$men . "
Visitas:$visitas
" . chr(10);
?>

Se requiere el fichero para contactar con la base de datos:

require('configuracion.php');

Se asignan las variables.

$IP = $REMOTE_ADDR;
$fecha = date("j \d\e\l n \d\e Y");
$hora = date("h:i:s");
$segundos = time();
$can = "3600";
$resta = $segundos-$can;

Se genera la consulta a la base de datos, solicitando cualquier registro 3600 segundos anteriores a los segundos actuales(obtenemos todos los registros una hora atrás).

$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);


Creamos el condicionamiento de loguear o no la entrada, dependiendo si el numero de registros es o no mayor a cero.

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);
}

Contamos los registros que tenemos en la tabla y se los asignamos a la variable $visitas que es la que después visualizaremos en pantalla.

$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);

Creamos una tabla para albergar las visitas:

$men=$men . "" . chr(10);
$men=$men . "" . chr(10);
$men=$men . "" . chr(10);
$men=$men .
"" . chr(10);
$men=$men . "
Visitas:$visitas
" . chr(10);

Después cualquier página que queramos que nuestro contador tenga en cuenta debemos añadir:

require('countbdd.php');
echo $men;
?>



Informe (php) de Roberto F
Webmaster de http//www.sysbinary.com


 
Valora este artículo   Malo Excelente  

Han valorado este artículo de php. 17 usuario(s).
Valoración media: Contador

Este artículo ha sido leído ( 14316 veces ).
Fecha: 10/19/2005


Agregar comentario | (0) comentarios
trucos php Recomendar este artículo php
Foros sobre php
php
Imprimir php
artículo php Agregar a Favoritos este artículo php


php
Artículos Relacionados

• Sitio del Día en PHP

• Ordenacion de Arrays QuickShort en PHP

• Tiempo de ejecucion de página PHP

• Resolución: JavaScript a PHP

• Conectarse a MySQL desde PHP

• Redireccion de usuarios con PHP

• Las cookies en PHP

• Enviando un mail desde PHP

• Funciones para el tratamiento de cadenas

• Las Funciones require() e include()

• Variables predefinidas

• Bucles For - control de flujo del Script

• Bucles While - control de flujo del Script

• Sentancias IF - control de flujo del Script

• Usando las fechas y horas en PHP

• Mi primer pagina PHP

• Operando con variables - Tipos de operadores

• Las variables en PHP

• Comentarios en PHP

• Instalacion de PHP en los diferentes servidores bajo sistemas Windows

• Introduccion a PHP