Sei sulla pagina 1di 2

Contador de visitas en PHP

<? /* El sistema es el siguiente: Hay un fichero en el cual se van a guardar 3 valores separados por dos arrobas "@", el primer valor corresponde a las visitas totales, el segundo valor a las de hoy, y el tercer valor contiene una fecha. Antes de incrementar los valores, tenemos que saber si tenemos el cookie, el cual caduca a los 30 minutos de activarse. Si tenemos el cookie entonces esque ya se han incrementado los contadores y ya no tenemos que hacerlo, y si no lo tenemos, lo activamos e incrementamos los contadores. Hay que tener en cuenta que solo funcionara si el include a un fichero que usa cookies esta al principio de la pagina. */ $fichero_contador = "visitas.txt"; // Fichero donde se guardan los valores /* PRIMERO HAY QUE CREAR UN FICHERO DE NOMBRE "visitas.txt" CON ESTA LINEA: "1@1@DIA_HOY" (DIA_HOY hay que sustiuirlo por el dia del mes en el que estamos, si por ejemplo estamos a 16 de agosto seria "1@1@16" */ /* Abrir el fichero y mostrar las visitas HOY y TOTALES */ $fichero = fopen($fichero_contador, "r"); // Abrimos el fichero para lectura $leido = fread($fichero, 128); // Leemos la cadena $visitas = explode("@", $leido); // Separamos en un array de tres elementos los datos if (date("d") != $visitas[2]) { // Si la fecha que hay en el fichero no es la de hoy $visitas[2] = date("d"); // Actualizamos la fecha (ponemos la de hoy) $visitas[1] = 1; // Y ponemos las visitas de hoy a 1 } if ($ccontador == "") { // Si no tenemos el cookie.. setcookie("ccontador", getenv("REMOTE_ADDR"), time() + 1800, "/", ""); // Lo activamos $visitas[0]++; // Incrementamos el contador de visitas TOTALES $visitas[1]++; // Y el de visitas HOY } /* Estas variables son las que usaremos desde la pagina donde queramos mostrar las visitas, despues de haber hecho un include("nombre_de_este_ficheero.php"); al principio de la pagina */ $visitas_totales = $visitas[0]; $visitas_hoy = $visitas[1]; // Esta /* Cerrar el fichero y actualizar los datos */ fclose($fichero); // Cerramos el fichero $fichero = fopen($fichero_contador, "w"); // Lo abrimos para escritura $junto = implode("@", $visitas); // Juntamos los 3 elementos del array en una sola cadena fputs($fichero, $junto); // Guardamos los nuevos valores en el fichero fclose($fichero); // Y por ultimo, cerramos el fichero ?>

Ejemplo de uso, mostrar las visitas totales y diarias en una pagina (suponiendo que el codigo del contador esta guardado como "contador.php" y en el mismo directorio que la pagina, y que hemos creado un archivo con el nombre "visitas.txt" con el texto "1@1@DIA_HOY" (hay que recordar que DIA_HOY es para sustituirlo por el dia del mes en el que estamos, si estamos a 16 de Agosto seria "1@1@16"))

<? include("contador.php"); // Para que funcione esta linea tiene que estar al principio de la pagina ?> <HTML> <HEAD> <TITLE>Probando el contador</TITLE> </HEAD> <BODY> <FONT FACE=VERDANA SIZE=1> <B>Visitas totales:</B> <? echo $visitas_totales ?><BR> <B>Visitas hoy:</B> <? echo $visitas_hoy ?><BR><BR> - Pulsa el boton de actualizar la pagina y comprobars que no se incrementan las visitas<BR> a no ser que hayan pasado los 30 minutos que dura el cookie que hemos activado, entonces<BR> se activa de nuevo el cookie y se incrementan las visitas. </FONT> </BODY> </HTML>

Potrebbero piacerti anche