Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con contador de visitas

Estas en el tema de Problema con contador de visitas en el foro de PHP en Foros del Web. Hola a todos: Les comento. Tengo una web, en la que quiero poner un contador de visitas. Mi idea es hacer un fopen y todo ...
  #1 (permalink)  
Antiguo 24/04/2012, 17:02
 
Fecha de Ingreso: abril-2012
Mensajes: 20
Antigüedad: 12 años
Puntos: 0
Exclamación Problema con contador de visitas

Hola a todos:
Les comento. Tengo una web, en la que quiero poner un contador de visitas. Mi idea es hacer un fopen y todo eso para sumar 1. Pero necesito discriminar un vistante nuevo de una nueva demanda de un mismo usuario. Ahí es donde tengo el problema. Quiero hacer la siguiente secuencia de instrucciones:

1. Detectar si esta persona es nueva o no. Si es nueva ir a 4. Si es antiguo, ir a 2.
2. Si no es nuevo, detectar hace cuanto que no visita la web. Si hace más de media hora ir a tres. Si no, romper la comprobación.
3. Abrir un archivo externo y sumar 1 para despues mostrarlo.

Mi problema está en los pasos 1 y 2. Para ello deduzco que necesito sesiones, pero no sé como puedo hacerlo, dado que las sesiones son mi punto débil.

Les agradezco todas las aportaciones que hagan al respecto.
Gracias
  #2 (permalink)  
Antiguo 24/04/2012, 18:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con contador de visitas

Cuál es tu punto débil en sesiones?

Debes usar session_start(); al principio de tus scripts, antes de cualquier salida e independientemente de que tengas un sistema de usuario o no.

Puedes crear las variables de sesión conforme las vayas necesitando, en tu caso, primero revisas:
Código PHP:
Ver original
  1. // Tiempo límite de media hora
  2. $limite = time() - 1800;
  3.  
  4. // con isset() revisas si ya existe la variable de sesión
  5. // si existe, la comparas con el tiempo límite
  6. if(isset($_SESSION['tiempo']) && $_SESSION['tiempo'] > $limite) {
  7.     // No realizas la operación, simplemente...
  8.     // ...Lees el contador
  9. } else {
  10.     // No existe la variable de sesión (primera visita (?))
  11.     // o ya pasó más de media hora
  12.     // Asignas el valor de sesión
  13.     $_SESSION['tiempo'] = time();
  14.     // Lees y actualizas el contador
  15. }
  16.  
  17. // Aquí muestras la cantidad de visitas
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 25/04/2012, 08:03
 
Fecha de Ingreso: abril-2012
Mensajes: 20
Antigüedad: 12 años
Puntos: 0
Exclamación Respuesta: Problema con contador de visitas

Muchas gracias Triby.
Te comento. Tengo 17 años y hace un año que empecé con PHP en clase. Pero entonces no dimos sesiones. Ahora estoy haciendo una web para mis compañeros para facilitar un poco el estudio para la Selectividad. Y estuve mirando por ahí pero lo que encontré no cumplia lo que yo quería.
¿El codigo también funcionaría así?


Código PHP:
Ver original
  1. // Tiempo límite de media hora
  2.     $limite = time() - 1800;
  3.      
  4.     // con isset() revisas si ya existe la variable de sesión
  5.     // si existe, la comparas con el tiempo límite
  6.     if(!isset($_SESSION['tiempo']) && $_SESSION['tiempo'] < $limite) {
  7.         // No existe la variable de sesión (primera visita (?))
  8.         // o ya pasó más de media hora
  9.         // Asignas el valor de sesión
  10.         $_SESSION['tiempo'] = time();
  11.         // Lees y actualizas el contador
  12.     }
  13.     // Aquí muestras la cantidad de visitas

Lo digo más que nada porque así evitaría dejar el if vacío. ¿Qué te parece?
  #4 (permalink)  
Antiguo 25/04/2012, 09:45
 
Fecha de Ingreso: abril-2012
Mensajes: 20
Antigüedad: 12 años
Puntos: 0
Respuesta: Problema con contador de visitas

Finalmente he utilizado este código y me ha funcionado a la perfección. Muchas gracias Triby.

Código PHP:
Ver original
  1. $limite = time() - 1800;
  2.     if(!isset($_SESSION['tiempo']) || $_SESSION['tiempo'] < $limite) {
  3.     //Aquí he introducido las acciones correspondientes para subir el contador
  4.     }
  5.     $_SESSION['tiempo'] = time();

Etiquetas: contador, contador-visitas
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 16:38.