Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Contador mejorado para páginas PHP


Script del contador PHP que almacena el número mes de la última visita, el número de visitas en el mes y las visitas totales.


22/10/03 - Dadas mis necesidades he tenido que modificar el script del contador simple para páginas PHP, y me gustaría compartirlo con todos vosotros. La diferencia está en que ahora almacena tres datos en el archivo que hace de contador:

0) el número de mes de la última visita
1) el número de visitas del mes
2) el número de visitas totales

El script queda como sigue:

function interface_contador(){

    $archivo = "contador.txt";
    $info = array();

    //comprobar si existe el archivo
    if (file_exists($archivo)){
       // abrir archivo de texto y introducir los datos en el array $info
       $fp = fopen($archivo,"r");
       $contador = fgets($fp, 26);
       $info = explode(" ",$contador);
       fclose($fp);

       // poner nombre a cada dato
       $mes_actual = date("m");
       $mes_ultimo = $info[0];
       $visitas_mes = $info[1];
       $visitas_totales = $info[2];
    }else{
       // inicializar valores
       $mes_actual = date("m");
       $mes_ultimo = "0";
       $visitas_mes = 0;
       $visitas_totales = 0;
    }

    // incrementar las visitas del mes según si estamos en el mismo
    // mes o no que el de la ultima visita, o ponerlas a cero
    if ($mes_actual==$mes_ultimo){
       $visitas_mes++;
    }else{
       $visitas_mes=1;
    }
    $visitas_totales++;

    // reconstruir el array con los nuevos valores
    $info[0] = $mes_actual;
    $info[1] = $visitas_mes;
    $info[2] = $visitas_totales;

    // grabar los valores en el archivo de nuevo
    $info_nueva = implode(" ",$info);
    $fp = fopen($archivo,"w+");
    fwrite($fp, $info_nueva, 26);
    fclose($fp);

    // devolver el array
    return $info;
}


Este código devuelve un array cuando es llamado, con 3 elementos (el mes actual, visitas del mes, visitas totales) que cada uno puede utilizar como quiera.

Por cierto, me olvidaba decir que he añadido una cláusula condicional que verifica si existe el archivo $contador en el directorio de la página, previamente a ser leído. Lo he hecho para evitar que diera error la primera vez que se ejecutaba el script. De esta forma, ya no hace falta preocuparse por poner en el servidor un archivo $contador a cero antes de ejecutar el código por primera vez.

Se puede ver el ejemplo en marcha en esta página. También se puede descargar el código de la página del ejemplo, con la función y una sencilla muestra de cómo utilizarla.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 2 comentarios (Añadir)
+ 20 comentarios no revisados

 Autoría, licencia y acciones sobre este artículo

Informe de Sergio Rodriguez Rios*
URL: http://www.guaser.info/ipsrr

Atención: Copyright. Este artículo no se puede reproducir sin la autorización expresa del autor.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de PHP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en PHP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestran 2 comentarios revisados

 Comentario de Jose Luis Perez
08/4/05 
A ver, me gustaría aportar mi granito de arena a esta comunidad.

Resulta que quería implementar un contador para una página web que estoy desarrollando, pero no me acababan de convencer los que hay aquí porque no son del todo realistas. Es decir que si el mismo usuario entra varias veces en la página o la recarga el contador también aumenta, y esto no me parecía razonable, así pensé en idear uno nuevo basándome en los que hay aquí pero haciendo uso de las variables de sesión que implementa php. Este ejemplo solo actualiza el contador si no se ha creado una sesion, seguramente ya haya algo parecido circulando por ahí, pero me pareció que sería interesante publicarlo aquí. Bien, el script es el siguiente:


function contador()
{
//El nombre del archivo donde se guardara el valor del contador, permisos 666 ;)
$file = "contador.txt";
//Si existe la variable de sesion, simplemente leemos el valor que hay en el archivo
if (isset($_SESSION['contador']))
{
$fid = fopen($file, "r") or die ("No se ha podido acceder al contador.");
while (!feof($fid))
{
$count .= fgetc($fid);
}
fclose($fid);
//devolvemos el valor obtenido del fichero
return $count;
}
//Si no existe la variable de sesion, la creamos y le asignamos cualquier valor
else
{
$_SESSION['contador']=1;
//Primero leemos el valor del contador
$fid = fopen($file, "r") or die ("No se ha podido acceder al contador.");
while (!feof($fid))
{
$count .= fgetc($fid);
}
fclose($fid);
//Ahora incrementamos en 1 el valor del contador y actualizamos el fichero
$count++;
$fid = fopen($file, "w+") or die ("No se puede acceder al contador.");
fwrite($fid, $count);
fclose($fid);
//devolvemos el valor del contador
return $count;
}
}

Bien esto es todo, espero que os sea útil. Aclarar que para que funcione se debe hacer uso de las sesiones, es decir que hay que llamar a session_start() en algún lugar de la página. De todos modos se puede implementar de forma parecida con cookies en vez de con variables de sesion, si es necesario también puedo postearlo.

Un saludo

 Comentario de Edu Córdoba
02/8/05 
Cuando desde una misma página, se ofrece distintos servicios que se quiere contabilizar, además de las propias. Estos contadores han de incluirse también en las páginas o archivos ofrecidos. Y hace laborioso tener por cada uno de los contadores un archivo de apunte.

Añadir un comentario al artículo Añadir un comentario del artículo
 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se han encontrado 20 comentarios sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Taller de PHP
Categorías
+Scripts en PHP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia