Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] contador se reestablece a cero

Estas en el tema de contador se reestablece a cero en el foro de PHP en Foros del Web. Hola comuniad, tengo un contador de visitas diarias y totales, pero pasado 3 o 4 días se reestablece a cero (0). Podrán decirme si hay ...
  #1 (permalink)  
Antiguo 18/11/2013, 07:44
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Pregunta contador se reestablece a cero

Hola comuniad, tengo un contador de visitas diarias y totales, pero pasado 3 o 4 días se reestablece a cero (0).

Podrán decirme si hay algún error?:

Código PHP:
$fichero_contador "visitas.txt"// Fichero donde se guardan los valores

$fichero fopen($fichero_contador"r"); // Abrimos el fichero para lectura
$leido fread($fichero128);                // 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
}

$visitas_totales $visitas[0]; 
$visitas_hoy $visitas[1]; 

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 
fichero visitas.txt:

0@0@18


Muchas gracias.
  #2 (permalink)  
Antiguo 18/11/2013, 08:52
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: contador se reestablece a cero

¿De donde viene la variable $ccontador?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 18/11/2013, 14:02
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: contador se reestablece a cero

Cita:
Iniciado por andresdzphp Ver Mensaje
¿De donde viene la variable $ccontador?
hola, en realidad es un script que encontré en google. Entiendo que el error debe estar ahí cuando guarda la cookie pero no sé la verdad como solucionarlo.

Muchas gracias.
  #4 (permalink)  
Antiguo 18/11/2013, 22:05
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: contador se reestablece a cero

Hola de nuevo comunidad, lo que hice fue comentar:

Código PHP:
Ver original
  1. if ($ccontador == "") {                          // Si no tenemos el cookie..
  2.     setcookie("ccontador", getenv("REMOTE_ADDR"), time() + 1800, "/", "");

pero no sé si estoy haciendo lo correcto.

Por favor me ayudan a modificar el código para que no se reestablesca a cero pasado unos días?. Gracias.
  #5 (permalink)  
Antiguo 25/11/2013, 10:36
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Pregunta Respuesta: contador se reestablece a cero

Hola de nuevo comunidad, hice algunas modificaiones pero el contador sigue reestableciendose a cero paso unos 4 o 5 días:

Quité la parte de la cookie y a la función fread() le agregué: filesize($fichero_contador)

Código PHP:
$fichero_contador "visitas.txt"// Fichero donde se guardan los valores

$fichero fopen($fichero_contador"r"); // Abrimos el fichero para lectura
$leido fread($ficherofilesize($fichero_contador));                // 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
}

$visitas[0]++;                                 // Incrementamos el contador de visitas TOTALES
$visitas[1]++;                                 // Y el de visitas HOY

$visitas_totales $visitas[0]; 
$visitas_hoy $visitas[1]; 

/* 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); 
Cuál puede ser el problema?. Puede ser que me lo modifiquen externamente con un mismo código?, ó al actualizar repetidamente F5 para subir vistias ahí esté el problema?.

Muchas gracias por su tiempo.
  #6 (permalink)  
Antiguo 25/11/2013, 10:57
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: contador se reestablece a cero

Y si usas file_get_contents() y file_put_contents()
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #7 (permalink)  
Antiguo 25/11/2013, 17:36
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Pregunta Respuesta: contador se reestablece a cero

Cita:
Iniciado por xSkArx Ver Mensaje
Y si usas file_get_contents() y file_put_contents()
Gracias por la pronta respuesta, pero sigo sin entender porque se reestablece a 0 el contador, no debería.

Entonces reemplazo:

fread() por file_get_contents() y fifputs() por file_put_contents()?

quedaría así?:

Código PHP:
file_get_contents($fichero_contador);

..............


file_put_contents($fichero); 

Me guían para armarlo?.

Gracias de nuevo.
  #8 (permalink)  
Antiguo 27/11/2013, 08:36
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: contador se reestablece a cero

Alguna idea comunidad?, no logro hacerlo andar. Gracias
  #9 (permalink)  
Antiguo 27/11/2013, 10:06
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: contador se reestablece a cero

Es igual a tu codigo yo solo cambie el manejo de archivos, asi de primeras funciona bien
Código PHP:
Ver original
  1. <?php
  2. $fichero_contador = "user.txt";
  3. $leido = file_get_contents($fichero_contador);                // Leemos la cadena
  4. $visitas = explode("@", $leido);             // Separamos en un array de tres elementos los datos
  5.  
  6. if (date("d") != $visitas[2]) {                 // Si la fecha que hay en el fichero no es la de hoy
  7.     $visitas[2] = date("d");                     // Actualizamos la fecha (ponemos la de hoy)
  8.     $visitas[1] = 1;                                // Y ponemos las visitas de hoy a 1
  9. }
  10.  
  11. $visitas[0]++;                                 // Incrementamos el contador de visitas TOTALES
  12. $visitas[1]++;                                 // Y el de visitas HOY
  13.  
  14. $visitas_totales = $visitas[0];
  15. $visitas_hoy = $visitas[1];
  16. $listo="$visitas_totales@$visitas_hoy@$visitas[2]";
  17.  
  18. file_put_contents($fichero_contador,$listo);
  19. echo $listo;
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #10 (permalink)  
Antiguo 27/11/2013, 15:54
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: contador se reestablece a cero

anduvo de maravillas!. Muchas gracias!.

Etiquetas: cero, contador, fecha
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 10:30.