¡Advertencia!
Este tema no ha tenido respuestas en más de un mes. Recuerda que si deseas añadir una nueva debes cumplir con las normas de la web.
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.


<?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: Xt3mP@h4x0rz.us               #
											#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
$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: http://xt3mp.webcindario.com/visits_counter/

Saludos.

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

Tablas:

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

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻
Gracias *.* Se lo pondré a mi web cuando la termine completamente que por cierto chicos, ya la tengo subida sólo me falta poner el texto

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻
Xt3mp baby tu por aquí?
Y esa sorpresa? D:

Ya vi tus tutos x'ddd

OFF: Conectate al skype, necesito hablar contigo

Arquitecto, diseñador y programador | Comenzando a proyectar mi vida bajo mis propios ideales. Administrador de ilDom, Twiteck y Century21
Genial aporte, gracias.
Yo hice uno simple, que pueden ver actualmente en algunas de mis herramientas... Pero está genial, ya desde mañana quizás comience a practicar con el MySQL que nunca se me ha dado por tocarlo xD..
Muy bueno, me gusta la manera en que cuentas las visitas por IP :juju:

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻
Haha SoyJoaquin., entre porque conozco a varios haha, Physlet, PHP Orientada a Objetos (no en este caso) + SQL = Una bestia tremenda en programación haha, deberías comenzar a tocarlo, saludos.

@Ghost, jeje me alegra que te haya gustado, un saludo.

¡Soy el fantasma de Habtium! Me dedico a reemplazar aquellas cuentas que han sido eliminadas. 👻