Foros del Web » Programando para Internet » PHP »

contador que tiene vida propia????respuesta para este misterio?

Estas en el tema de contador que tiene vida propia????respuesta para este misterio? en el foro de PHP en Foros del Web. -hola , tengo el siguiente contador de visitas en mi pagina hasta ayer el contador mostraba 2230 visitas , pero hoy asi derepente muestra 180!!! ...
  #1 (permalink)  
Antiguo 30/12/2005, 08:08
 
Fecha de Ingreso: febrero-2004
Ubicación: argentina
Mensajes: 203
Antigüedad: 13 años, 10 meses
Puntos: 0
contador que tiene vida propia????respuesta para este misterio?

-hola , tengo el siguiente contador de visitas en mi pagina hasta ayer el contador mostraba 2230 visitas , pero hoy asi derepente muestra 180!!! por que puede ser , yo no actualice la pagina todavia, pues la subi hace poco, mi pagina esta alojada en miarroba, sera que ellos modificaron de alguna manera mi archivo???? alguien que tenga una respuesta para este misterio?

script del contador:

<?
// file for the counter
$counterFile = "counter.txt";
// maximum number of digits used
$maxlen = 6;


function displayCounter($counterFile) {
global $maxlen;

$fp = fopen($counterFile,rw);
$num = fgets($fp,$maxlen);
$num += 1;

for ($i=0; $i<strlen($num); $i++) {
$val = substr($num, $i, 1);
// to do a vertical counter add <br> to the end of this line

}

print ("<font size='1' color='#F75917' face='arial'>visitas: $num</font>");

$fp = fopen($counterFile,w);
fputs($fp,$num);
fclose($fp);

}

if (!file_exists($counterFile)) {
$num = 0;
fputs($fp,$num);
}
displayCounter($counterFile);

?>
  #2 (permalink)  
Antiguo 30/12/2005, 09:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
A veces sucede eso, .. es un problema de que se "resetea" tu contador por un problema de "concurrencia". Es decir, .. que el archivo alguien lo abrió cuando otro estaba escribiendo, eso lo detecta como que "no existe" y lo crea nuevo. Por eso se reinicia tu "contador".

Para solventar el problema deberías "bloquear" el archivo cuando escribas en el (o leas .. ahí ahora me estoy haciendo un lio) y desbloquearlo al final de tu proceso. Para eso puedes usar la función:

flock()
http://www.php.net/manual/en/function.flock.php

Un saludo,
  #3 (permalink)  
Antiguo 30/12/2005, 10:03
 
Fecha de Ingreso: febrero-2004
Ubicación: argentina
Mensajes: 203
Antigüedad: 13 años, 10 meses
Puntos: 0
cluster muchas gracias por responderme , pero no me quedo claro esto:

como puede ser que alguien haya abierto el archivo ,como puede ser eso ? si no actualice la pagina todavia

y cuando dices que otro lo estaba escribiendo quieres decir cuando el contador estaba escriviendo??

saludos!!!
  #4 (permalink)  
Antiguo 30/12/2005, 10:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Algun problema en la lectura tendrías en ese caso .. sólo fijate que hace tu código. Abre el archivo .. lee un dato (no cierra el archivo con fclose) y seguidamente vuelves abrir el archivo nuevamente para escribir en el.

Lo recomentable es abrir y cerrar el archivo cuando se termine de usar .. o usarlo para leer y escribir (abriendolo en modo escritura/lectura) .. Y como ya te he comentado y veras ejemplos en la documentación que te dejé .. bloque el archivo en el proceso de lectura de escritura de datos.

Un saludo,
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 06:18.