Contador de visitas [Unicas y Generales]

Iniciado por Xt3mP, Julio 23, 2010, 03:42:39 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Julio 23, 2010, 03:42:39 AM Ultima modificación: Julio 24, 2010, 07:17:31 PM por Xt3mP
Estaba aburrido y decidí "programar" algo muy básico, se trata de un contandor de visitas que hace:

· Muestra IP más la cantidad de veces que ha accedido esa IP.
· Muestra todas las visitas que ha tenido la página (No importa si es la misma IP, la cuenta como visita).
· Muestra las visitas únicas que ha tenido la página (En número).

El script es sumamente básico, no creo que se les dificulte entenderlo.

Código: php

<?php
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
#             Visits Counter v1.0 By Xt3mP (Public source)           #
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
# Este script cuenta tanto visitas únicas como en total. #
#   Para visualizar las estadísticas ir a ?mod=view.                 #
#    #
#               Autor: Xt3mP Contacto: [email protected]               #
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
$connect      = mysql_connect("SERVER", "USER", "PASS") or die('No se pudo conectar: ' . mysql_error());
mysql_select_db("DATABASE") or die("No se pudo seleccionar la base $base_de_datos: " . mysql_error());
$ip   = $_SERVER[REMOTE_ADDR];
$count        = 1;
$query        = mysql_query("SELECT ip FROM unicas WHERE ip='" . $ip . "' ");
if ($checking_ip =  mysql_fetch_array($query)){
$query_update =     mysql_query("SELECT * FROM unicas WHERE ip='" . $ip . "' ");
while ($row      =  mysql_fetch_array($query_update)){
$times   = $row['times'] + 1;
mysql_query("UPDATE unicas SET times='" . $times . "' WHERE id='" . $row['id'] . "' ");
}
//echo "Actualizado!";
}else{
//echo "IP no existe";
mysql_query("INSERT INTO unicas (ip,times) values ('" . $ip . "','" . $count . "') ");
}

$all      = mysql_query("SELECT * FROM todas");

    if ($als         = mysql_fetch_array($all)){

$times_all   = $als['times'] + 1;
mysql_query("UPDATE todas SET times='" . $times_all . "' WHERE id=1");
}else{
mysql_query("INSERT INTO todas (times) values ('" . $count . "') ") or die(mysql_error());
}

#Modulos
$visits  = "<div align='center'>Click <a href='?mod=view'>aqui</a> para ver stats.</div>";
if ($_GET['mod']){
$mod         =  $_GET['mod'];
switch($mod){
   case "view":
$uni     = mysql_query("SELECT * FROM unicas");
$uni_ip  = mysql_num_rows($uni);
$tod     =     mysql_fetch_array(mysql_query("SELECT * FROM todas"));
$visits  = '<div align="center">';
$visits .=     '<table align="center" width="100">';
$visits .= '<tr><td align="center">IP</td><td align="center">Hits</td></tr>';

while ($unicas   =  mysql_fetch_array($uni)){
$visits .= '<tr><td align="center">' . $unicas["ip"] . '</td><td align="center">' . $unicas["times"] . '</td></tr>';
}
$visits .= '</table></div>';
$visits .= '<br><br>';
$visits .= "<div align='center'>Total de visitas: " . $tod['times'] . "</div>";
$visits .= "<div align='center'>Total de visitas unicas: " . $uni_ip . "</div>";
break;

    default:
    $visits  = "<div align='center'>No existe este modulo de visitas.</div>";

}
}
echo $visits;
mysql_close();

?>


Demo: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos.

P.D: No le metí diseño, pero si tienen alguna duda de como hacerlo haganmelo saber.

Tablas:
Código: php

create table unicas (
id int(11) NOT NULL auto_increment,
ip varchar(15) NOT NULL,
times int NOT NULL,
PRIMARY KEY  (id)
)

create table todas (
id int(11) NOT NULL auto_increment,
times int NOT NULL,
PRIMARY KEY (id)
)
Cada vez que me das Karma me motivas