Ayuda - Búsqueda - Miembros - Calendario
Versión Completa: Contador De Visitas Con Cookies (solucionado)
Swishmax.es. Foro de consulta en español > SwishMax > SwishMax 1
chuntaro50
Hola que tal!!

Miren mi problema es el siguiente - me encargaron una pagina web que contenga un contador de visitas, buscando por este foro encontre uno que contiene un archivo php en donde se van guardando las visitas, el problema con este contador es que cuando uno da click en un enlace y luego vuelve a regresar el menu principal o simplemente con actualizar la pagina (f5) cuenta nuevamente la visita, asi sea el mismo visitante, cosa que no deseo que realize.

Buscando mas informacion en la web encontre que una forma de controlar un contador de visitas para que no cuente una visita cada vez que se refresca la página se realiza por medio de cookies (cosa que no entiendo muy bien), en fin, segui buscando y encontre un ejemplo de un contador con cookies realizado en swishmax:

Aqui esta el enlace por si lo quieren chekar:

Contador con cookies


Lleve a cabo este ejemplo pero da el mismo resultado; sigue contado las visitas de un mismo usuario cada vez que regresa al menu principal o actualiza la pagina.

Aki esta mi pagina para que vean el funcionamiento: Pagina con contador

<< aclaro que no esta terminada solo es para que vean la parte del contador biggrin.gif >>

Por favor echenme la mano kisiera ver en donde me estoy equivocando o que mas le puedo poner al archivo php para que las cookies funcionen y expiren en cierto tiempo (30 min. por ejemplo) y asi no se cuenten las visitas de un mismo usuario cada que regresa al menu principal.

De antemano gracias, y les dejo los archivos adjuntos para que cheken:

Click para ver archivos adjuntos

Click para ver archivos adjuntos
canon882
CITA(chuntaro50 @ 20-04-2010 - 03:47 PM) *
Hola que tal!!

Miren mi problema es el siguiente - me encargaron una pagina web que contenga un contador de visitas, buscando por este foro encontre uno que contiene un archivo php en donde se van guardando las visitas, el problema con este contador es que cuando uno da click en un enlace y luego vuelve a regresar el menu principal o simplemente con actualizar la pagina (f5) cuenta nuevamente la visita, asi sea el mismo visitante, cosa que no deseo que realize (...)


Disculpa, no he tenido mucho tiempo de revisar la URL que te adjunto, pero parece que funciona bien. Inténtalo y nos cuentas qué tal. ¿Sale y vale?

URL: http://files.swish-tutorials.com/files.php...file&id=517

Nos vemos. Un abrazo.
chuntaro50
Hola canon882 gracias por responder a mi duda, te comento que ya probe el ejemplo del enlance pero pues funciona igual, cuando voy a un enlace y regreso al menu principal vuelve a contar
cancrexo
Hola. Ese script PHP lo que hace es devolver el valor de la cookie, no el número de visitas totales. No se de donde lo habrás sacado pero o has entendido mal su utilidad o el que te lo paso no se enteraba mucho del tema. blink.gif

Lo que tienes que hacer es:
  1. Leer el numero de visitas totales
  2. Comprobar si la cookie existe. En caso negativo incrementar las visitas y grabar el nuevo valor
  3. Crear la cookie
  4. Devolver el numero de visitas

Lo que más o menos sería:
CÓDIGO
<?php    
    $archivo = "contador.txt"; // Archivo con el numero de visitas        
    // Leemos las visitas.
    if(file_exists($archivo)){        
        $contador = file_get_contents($archivo);        
        $yaHasEstadoAqui = $_COOKIE['yaHasEstadoAqui']; // Intentamos leer la cookie
        if (!$yaHasEstadoAqui)$contador ++; // // si NO existe la cookie, incrementamos las visitas
        
    }else{
        // Crear archivo contador. Será con la 1ª visita
        touch($archivo);
        chmod($archivo, 0755);
        $contador = 1; // Valor por defecto si no existe fichero de visitas
    }
        
    // Grabamos cookie de 1 hora de duracion
    setcookie("yaHasEstadoAqui",1, time() + 3600);
    
    // Grabamos contador
    file_put_contents($archivo, $contador); // solo PHP 5!!!
    
    // Devolvemos visitas a flash
    echo "&visitas=$contador&";
?>


Te faltaría después modificar el swi para que la carga de resultados sea algo más serio y no el dichoso loadVarsNum que suelen utilizar en todos los puñeteros ejemplos que llegan a esta Web (formularios de contacto, visitas, usuarios online etc) ¿Que tal un LoadVars por ejemplo?

Salu2
chuntaro50
Hola cancrexo que tal, he probado el codigo que pusiste, modifique el swi y !funciona de maravilla! biggrin.gif , el contador aumenta solo despues de que la cookie expira o si es un usuario distinto.

Muchas gracias enserio, no sabes cuanto me has ayudado. Luego subire los archivos para que otros usuarios que tengan el mismo problema lo resuelvan.

cancrexo
OK. POST cerrado entonces.

Salu2
Esta es una versión "reducida (lo-fi)" de nuestro contenido. Para ver la versión completa con mas información, formato e imágenes, por favor haz click aquí.
Invision Power Board © 2001-2012 Invision Power Services, Inc.