Ver Mensaje Individual
  #6 (permalink)  
Antiguo 16/10/2009, 18:22
disweb
 
Fecha de Ingreso: octubre-2008
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Contador de visitas en Flash

Cita:
Iniciado por buscador18 Ver Mensaje
Alguien si me ayuda, yo busco un contador que no agregue una visita mas si presiono el F5 o al actualizar no cuente una visita mas. Espero que me ayuden
Pues en este enlace
http://www.forosdelweb.com/f18/tutor...l-jalf-297251/
hay un contador que trabaja con cookies, tiene 3 archivos, te los pongo a continuación:

Este es para crear la Base de Datos, que podría llamarse db.sql (no le toques nada)
Código PHP:
/*
* Tabla para contador de visitas reales by JALF
*/

CREATE DATABASE IF NOT EXISTS visitas;
USE 
visitas;
DROP TABLE IF EXISTS contador;

CREATE TABLE contador (
  
numero_visitas int
);
INSERT INTO contador VALUES(0); 
Este es el archivo que contiene la clase y se llama
class.contador.php, tampoco le toques nada
Código PHP:
<?php
/*

* Esta clase no está echa con el fin de ser utilizada para tu página
* simplemente está hecha para que comprendas como realizar un contador
* de visitas reales utilizando una DB en MySQL
*
* De todas maneras si quieres utilizarla puedes hacerlo y tienes toda la
* libertad del caso, solo recuerda que quien la realizó fue:
*    JALF - Julian Lasso -
*
* Si tienes dudas o cualquier cosa, solo escribe a [email protected]

*/
class CONTADOR {

  private 
$nombre;    //nombre del sitio ejemplo forosdelweb_com
  
private $valor;     //contenido de la cookie
  
private $host;      //nombre del host donde se encuentra la db normalmente es localhost
  
private $usuario;   //usuario de la db
  
private $password;  //contraseña de la db
  
private $tabla;     //nombre de la tabla donde está el contador
  
private $db;        //nombre de la base de datos

  /* función principal con la cual se registra  */
  
public function CONTAR($nombre,$host,$usuario,$password,$nombre_db,$tabla,&$total=null){
    
$this->nombre $nombre."_visita"//nombre de la cookie
    
$this->valor "usuario"//dato que llevará la cookie

    /* asignaciones de valores a las variables de la calse */
    
$this->host $host;
    
$this->usuario $usuario;
    
$this->password $password;
    
$this->db $nombre_db;
    
$this->tabla $tabla;

    
/* sacamos lo que hay en cookie que se encuentra en el PC si es que existe */
    
$cookie $_COOKIE[$this->nombre];

    
/* decición para saber si registramos una visita o no */
    
if($cookie != $this->valor){
      
$this->ENVIAR_COOKIE(); //envio de la cookie
      
$this->REGISTRAR_VISITA(); //registro de la visita
    
}
    
$this->TOTAL_VISITAS($total);
  } 
// END CONTAR

  /* función con la cual enviaremos una cookie de nuestro sitio que expira en 24 horas*/
  
private function ENVIAR_COOKIE(){
    
/* envio de la cookie */
    
setcookie($this->nombre$this->valortime()+86400); //expira en 24 horas
  
// END ENVIAR_COOKIE

  /* función con la cual registraremos una visita */
  
private function REGISTRAR_VISITA(){
    
/* conectamos con el servidor de la DB */
    
$conex mysql_connect($this->host,$this->usuario,$this->password);

    
/* seleccionamos la DB */
    
mysql_select_db($this->db,$conex);

    
/* consulta del total de visitas registradas */
    
$resultado mysql_query("SELECT numero_visitas FROM ".$this->tabla,$conex);

    
/* sacamos el resultado */
    
$fila mysql_fetch_row($resultado);

    
/* suma de visita */
    
$final $fila[0] + 1;

    
/* registro de la visita en la DB */
    
mysql_query("UPDATE contador SET numero_visitas=".$final." WHERE numero_visitas=".$fila[0],$conex);

    
/* liberación de la variable $resultado */
    
mysql_free_result($resultado);

    
/* cierre de la conección a la DB */
    
mysql_close($conex);
  } 
// END REGISTRAR_VISITA

  /* función para el total de visitas */
  
private function TOTAL_VISITAS(&$total){
    
/* conectamos con el servidor de la DB */
    
$conex mysql_connect($this->host,$this->usuario,$this->password);

    
/* seleccionamos la DB */
    
mysql_select_db($this->db,$conex);

    
/* consulta del total de visitas registradas */
    
$resultado mysql_query("SELECT numero_visitas FROM ".$this->tabla,$conex);

    
/* sacamos el resultado */
    
$fila mysql_fetch_row($resultado);

    
/* liberación de la variable $resultado */
    
mysql_free_result($resultado);

    
/* cierre de la conección a la DB */
    
mysql_close($conex);

    
/* asignación del resultado a la variable final */
    
$total $fila[0];
  } 
// END TOTAL_VISITAS
// END CONTADOR
?>
Y este es el ejemplo, le podés poner como querrás, en el archivo se llama
ejemplo.php, éste si hay que modificarlo:
Código PHP:
<?php
/*
* Ejemplo practico para aplicar a la clase CONTADOR by JALF
*/
include("class.contador.php");

$count = new CONTADOR();
$count->CONTAR("nombre_tusitio","localhost","usuario_basedatos","password_basedatos","visitas","contador",$total);

echo 
"Hemos tenido <b>$total</b> Visitas";

?>
En nombre_tusitio lo podés dejar así o le cambiás el nombre, no le pongás ni el http, ni el www, ni el .com porque ya no funciona, lo probé.

En localhost, ponés el nombre de tu servidor, generalmente es el mismo localhost.

En usuario_basedatos colocás el usuario de tu base de datos o le podés dejar root, que es el que trae por default.

En password_basedatos pues ponés la contraseña de tu base de datos, que si le has puesto root, podrías dejarlo en blanco.

Al ejecutarlo crea un archivo, que en mi caso se llama [email protected] y contiene, los siguientes datos:
Código PHP:
http://www.misitio.com_visita
usuario
localhost
/contador_real/
1024
3752242176
30035844
3042918672
30035643

Lo probé en localhost y funciona bien con Opera, IExplorer y Chrome.
También podrías buscar un tutorial que te trabaje con la IP.