Foros del Web » Programando para Internet » PHP »

mejorar este contador

Estas en el tema de mejorar este contador en el foro de PHP en Foros del Web. Hola a todos En las busquedas he encontrado este codigo para un contador de visitas (que funciona con contador.txt en el mismo directorio que solo ...
  #1 (permalink)  
Antiguo 19/08/2006, 07:30
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 3 meses
Puntos: 15
mejorar este contador

Hola a todos
En las busquedas he encontrado este codigo para un contador de visitas (que funciona con contador.txt en el mismo directorio que solo tiene un 0 (cero) como texto.
Me funciona bien , pero quisiera que sea un poco mas completo. Este solo muestra las visitas de la pagina donde esta este codigo.
Basicamente lo que hace es ir cambiando un numero en contador.txt con cada visita recibida.

Es posible hacer que en contador.txt:
1- aparezca el nombre de pagina visitada y luego el numero (por ejemplo: INDEX:340), (o sea: no solo el numero)

2- aparezcan datos de otras pagina donde insertaria el mismo codigo php. De esta forma la informacion en contador.txt podria ser algo como:
INDEX:340
PRODUCTOS:200
SERVICIOS:100
CONTACTO:20
(esto serian otras paginas y sus visitas)


--O SEA: modificar este codigo para que pueda insertarse en varias paginas , ver todas la informacion en un mismo txt (contador.txt) separando pagina por página.--


Codigo PHP
<?
$archivo = "contador.txt";
$contador = 0;

$fp = fopen($archivo,"r");
$contador = fgets($fp, 26);
fclose($fp);

++$contador;

$fp = fopen($archivo,"w+");
fwrite($fp, $contador, 26);
fclose($fp);

echo "Esta página ha sido visitada $contador veces";
?>

gracias
saludos
  #2 (permalink)  
Antiguo 19/08/2006, 12:29
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
bueno aquí te doy un script, y espero te sirva:

PRIMERO CREA EL ARCHIVO (ESTO LO VAS A HACER SOLO UNA VEZ):
<?php
$fp = fopen ('contador.txt', 'w+');
$cadena = 'INDEX:\t0\tPRODUCTOS\t0\tSERVICIOS\t0\tCONTACTO\t 0';
fwrite ($fp, $cadena);
fclose($fp);
echo $cadena;
?>

LUEGOGUARDA EL ARCHIVO contador.php PARA QUE LO INCLUYAS EN CADA UNA DE LAS PAGINAS QUE QUIERES SABER CUANTAS VISITAS A TENIDO:

<?php
// abrimos el fichero para lectura
$fp = fopen ($ruta, 'r+');
// leemos la información
$datos =fread ($fp, filesize($ruta));
// lo cerramos
fclose($fp);

//separamos los datos
$datospag = explode ('\t', $datos);

$pagina = strtoupper($pagina);

// buscamos la posicion de la pagina en el array $datospag para aumentar en 1 unidad
$buscapag = (array_search($pagina, $datospag) + 1);

//aumentamos en una unidad la cantidad de impresiones almacenadas de la pagina
$aumenta = $datospag[$buscapag]++;

// damos formato para guardarlo en el doc. .txt
$datosaingresar = implode ('\t', $datospag);

$fp = fopen($ruta, 'w+');
fwrite ($fp, $datosaingresar);
fclose($fp);
echo "INDEX: ".$datospag[1]."<br/>PRODUCTOS: ".$datospag[3]."<br/>SERVICIOS: "
.$datospag[5]."<br/>CONTACTO: ".$datospag[7];
?>

Y AQUI TIENES UN EJEMPLO DE COMO INLUIRLO SUPONIENDO QUE ENTRAS A productos.php:

<?php
// especificamos la ruta del fichero que contiene la cantidad de impresiones
$ruta = 'contador.txt';
// esta parte es importante ya que debes especificar en que página
//estas sin poner extensión
$pagina = 'productos';
include('contador.php');
?>

si tienes dudas me avisas.
  #3 (permalink)  
Antiguo 19/08/2006, 14:02
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 3 meses
Puntos: 15
muchas gracias

Mi nivel de php es cero
Veo que me has pasado 3 script php pero no tengo claro donde ponerlos. Esto es correcto??

1-Este primero lo guardo como contador.php ??

<?php
$fp = fopen ('contador.txt', 'w+');
$cadena = 'INDEX:\t0\tPRODUCTOS\t0\tSERVICIOS\t0\tCONTACTO\t 0';
fwrite ($fp, $cadena);
fclose($fp);
echo $cadena;
?>

2- Y los 2 que están debajo lo pongo en el <head> de las paginas que tendrán contador de visita. ??

<?php
// abrimos el fichero para lectura
$fp = fopen ($ruta, 'r+');
// leemos la información
$datos =fread ($fp, filesize($ruta));
// lo cerramos
fclose($fp);

//separamos los datos
$datospag = explode ('\t', $datos);

$pagina = strtoupper($pagina);

// buscamos la posicion de la pagina en el array $datospag para aumentar en 1 unidad
$buscapag = (array_search($pagina, $datospag) + 1);

//aumentamos en una unidad la cantidad de impresiones almacenadas de la pagina
$aumenta = $datospag[$buscapag]++;

// damos formato para guardarlo en el doc. .txt
$datosaingresar = implode ('\t', $datospag);

$fp = fopen($ruta, 'w+');
fwrite ($fp, $datosaingresar);
fclose($fp);
echo "INDEX: ".$datospag[1]."<br/>PRODUCTOS: ".$datospag[3]."<br/>SERVICIOS: "
.$datospag[5]."<br/>CONTACTO: ".$datospag[7];
?>

<?php
// especificamos la ruta del fichero que contiene la cantidad de impresiones
$ruta = 'contador.txt';
// esta parte es importante ya que debes especificar en que página
//estas sin poner extensión
$pagina = 'productos';
include('contador.php');
?>
  #4 (permalink)  
Antiguo 21/08/2006, 13:56
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
NADA DE ESO chefnelone. AHORA TE EXPLICO, SUPONGO YO QUE YA TIENES INSTALADO PHP ASI QUE EL PRIMER SCRIPT GUARDALO COMO creaarchivo.php POR DECIR ALGO, ESTE SOLÓ TE SERVIRA PARA GUARDAR UN .txt CON EL CONTADOR DE CADA PAGINA EMPEZANDO DESCE CERO EL CONTADOR.
ENTRAS A creaarchivo.php PARA QUE SE EJECUTE.
EL SEGUNDO SCRIPT GUARDALO COMO contador.php, LA FUNCION DE ESTE ARCHIVO ES QUE SE LE PASE COMO CADENA EL NOMBRE DE LA PAGINA QUE SE ESTA VIENDO PARA QUE LE SUME AL CONTADOR 1 UNIDAD.
Y POR ULTIMO EL TERCER SCRIPT ES SOLO UN EJEMPLO DE COMO PUEDES LLAMAR A contador.php PARA QUE ESTE HAGA LOS CAMBIOS. LO INCLUYS EN CADA UNA DE LAS PAGINAS QUE QUIERES SABER SU RESPECTIVO CONTADOR (OJO, NO IMPORTA MUCHO DONDE COLOCAS ESTE SCRIPT; CON RESPECTO A LO QUE DECIAS SOBRE SI IVA EN EL head, LO QUE REALMENTE INTERESA EN ESTE CASO ES QUE LO INCLUYAS EN TUS PAGINAS: INDEX, PRODUCTOS, SERVICIOS, CONTACTO Y ENTRE ETIQUETAS PHP. TAMBIEN SUPONGO QUE ESTAS PAGINAS FUERON GUARDADAS CON EXTENSION .php). AQUI TINES OTRO EJEMPLO DE COMO LLAMARLO:

<?php
// especificamos la ruta del fichero que contiene la cantidad de impresiones
$ruta = 'contador.txt';
// esta parte es importante ya que debes especificar en que página
//estas sin poner extensión
$pagina = 'servicios';
include('contador.php');
?>

AHORA, EL CODIGO QUE TE PUSE TRATE DE PONERLO A MANERA DE QUE SE ME ENTENDIERA ASI QUE POR LO MISMO PUEDE SER UN TANTO LARGO PARA LO QUE HACE. EN REALIDAD PUEDES MEJORARLO.
A POR SIERTO, SIGUE PRACTICANDO Y VERAS QUE CON PHP SE PUEDEN LOGRAR COSAS MARAVILLOSAS. SUERTE.
  #5 (permalink)  
Antiguo 23/08/2006, 01:59
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 3 meses
Puntos: 15
gracias ya estoy con esto de nuevo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:54.