¡REGISTROS PRÓXIMAMENTE!          
 
Home  ::  Libro de visitas  ::  Visitas: 54086  ::  Usuarios on-line: 2
CATEGORÍAS

OTRAS SECCIONES

TAGBOARD

ENLACES

ENCUESTA

CALENDARIO

Scripts de programación :: MYSQL
Diversos scripts de programación en web para webmasters. PHP, MYSQL, ASP, JAVASCRIPT, JAVA, ACTIONSCRIPT, CSS, XML, etc; para desarrollar páginas web dinámicas copiando y pegando el código en tus páginas.

Disponemos de una sección de documentación para ayudar a webmasters o usuarios de páginas web a mejorar el posicionamiento en buscadores de la importancia de Google

Ayúdanos a crecer!, envíanos tus scripts de programación a la dirección admin@jaterli.com indicando en el asunto a la categoría a la que pertenece. Lo publicaré en esta web tan pronto como pueda.

 

Contador de visitas controlando la IP

Aumentar tamaño de fuente Restablecer tamaño de fuente Disminuir tamaño de fuente

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
<?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 .
"<table width='6%' border='0' height='25' bgcolor='#000000'>" chr(10);
$men=$men "<tr>" chr(10);
$men=$men "<td><font color=#000000>Visitas:$visitas</font></td>" chr(10);
$men=$men .
"</tr>" chr(10);
$men=$men "</table>" 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 . "<table width='6%' border='0' height='25' bgcolor='#000000'>" . chr(10);
$men=$men . "<tr>" . chr(10);
$men=$men . "<td><font color=#000000>Visitas:$visitas</font></td>" . chr(10);
$men=$men .
"</tr>" . chr(10);
$men=$men . "</table>" . chr(10);

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

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

 

 

[ Regresar a la categoría ]

 

 

Si deseas colaborar enviando tu artículo, puedes acerlo a esta dirección de correo: admin@jaterli.com Será revisado y publicado tan pronto como nos sea posible. Gracias!!