Foros del Web » Programando para Internet » ASP Clásico »

Contador visitas

Estas en el tema de Contador visitas en el foro de ASP Clásico en Foros del Web. He realizado una pagina que visualiza reportajes (tipo revista) almacenados en una base de datos. Al final muestro el numero de veces que se ha ...
  #1 (permalink)  
Antiguo 18/06/2004, 08:08
Avatar de fario13  
Fecha de Ingreso: junio-2004
Ubicación: Entre Madrid y Logroño
Mensajes: 411
Antigüedad: 20 años
Puntos: 7
Contador visitas

He realizado una pagina que visualiza reportajes (tipo revista) almacenados en una base de datos. Al final muestro el numero de veces que se ha visto ese reportaje. Esto lo hago incrementando en 1 un campo de la tabla cada vez que se carga la pagina.

Mi intencion es remunerar al autor por cada vez que se vea su reportaje, pero
mi problema es que quiero evitar la picaresca de "Actualizar" la pagina. Me podeis dar alguna idea?

Gracias y un saludo
  #2 (permalink)  
Antiguo 18/06/2004, 11:57
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 5 meses
Puntos: 6
La única idea que te doy es que busques en el foro, ejemplos de esos hay 1000, venga te daré una pista, "Variables de sesión"

;)
  #3 (permalink)  
Antiguo 18/06/2004, 12:24
Avatar de LeCLUB  
Fecha de Ingreso: abril-2003
Ubicación: Barcelona (España)
Mensajes: 205
Antigüedad: 21 años, 1 mes
Puntos: 1
La variables de sessión funcionan muy bien en este sentido, aunque hay un problema, si el usuario "cierra" y "abre" de nuevo el navegador, se crea una nueva, con lo que no anulas la mala intención del usuario (si es que la hay)

Para ello, a veces es preferible sacrificar un poco, pero en vez de por tu lado, por el lado del cliente (y digo esto porque de la forma que ahora explicaré, podría suceder muy remotamente que un usuario entrase en el reoprtaje desde un terminal público, por ejemplo, una univesidad o cibercafé, cerrase el navegador, y posteriormente entrase otro usuario diferente con el mismo terminal y dentro de un tiempo que luego detallaré para leer de nuevo ese reportaje. En este caso, esta segunda visita no contará, pero como he dicho, hay muuuuy pocas posibilidades de que esto suceda)

El tema es "registrar" la IP del usuario en una BBDD, junto con la fecha actual de la lectura de ese reportaje.
Luego, antes de aumentar el contador de dicho reportaje, se verifica si ese cliente ha accedido al mismo anteriormente, y si es así , que no esté en un rango de tiempo estipulado.

Ejemplo: Queremos que cuando un usuario acceda a un reportaje por segunda vez, no se incremente el valor del contador, siempre y cuando este usuario no haya realizado esa lectura despues de 3 horas desde la primera.
Osea, que si se lee el reportaje a las 14:00, y la segunda lectura es a las 14:30, ésta no se contabilice en el contador hasta que no hayan pasado 3 horas desde la primera lectura (14:00)

Pues bueno, supongamos que en el reportaje titulado "AMAZONAS" entra un usuario con la ip 80.30.30.30 a las 20:30 de la tarde

Luego, imaginemos que el usuario cierra el navegador (con esto ya eliminamos la variable de sessión, así que ya no nos serviría) y después de 45 minutos, abre uno de nuevo, vuelve a entrar y vuelve a visualizar el reportaje

Pues antes de incrementar el valor del contador de ese reportaje, recuperamos de nuevo la IP del cliente, buscamos en la BBDD si existe alguna IP que coincida con la del cliente y que haya visto ese mismo reportaje (en este caso obtendremos un registro, el de las 20:30)

En el caso de que exista un registro, recuperaremos la fecha/hora actual del sistema, y si la diferencia de la actual con la del registro es inferior a 3 horas, NO actualizaremos el contador, en caso negativo, es decir, que hayan pasado más de 3 horas desde el último acceso a ese reportaje, actualizaremos el valor del contador, y de paso, actualizaremos de nuevo ese registro con la nueva fecha/hora actual, por si de aquí a XX tiempo vuelve a leer el reportaje.

No se si me he explicado bien, ya me comentarás xDDD

Un saludo

PD: Ojo, si al final te decides a utilizar esta forma, debes de tener muy en cuenta si existe algún Proxy entre el cliente y tu servidor (por ejemplo, los usuarios de ADSL de Telefónica navegan mediante proxy, por lo que TODOS los usuarios tienen la misma IP) Pero bueno, tambien hay solución para ello ;)

Última edición por LeCLUB; 18/06/2004 a las 12:34
  #4 (permalink)  
Antiguo 18/06/2004, 13:19
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 5 meses
Puntos: 6
************************************************** ****
PD: Ojo, si al final te decides a utilizar esta forma, debes de tener muy en cuenta si existe algún Proxy entre el cliente y tu servidor (por ejemplo, los usuarios de ADSL de Telefónica navegan mediante proxy, por lo que TODOS los usuarios tienen la misma IP) Pero bueno, tambien hay solución para ello
************************************************** ******

Eso precisamente quería comentar, la gente que accede desde macro redes, como en mi caso (desde la empresa) todos tienen la misma IP, ¿Como lo controlas eso?

Ah! y de paso dime como leches pones el cuadro ese tan majo para mencionar lo que dicen otros!! jejeje

Salu2
  #5 (permalink)  
Antiguo 18/06/2004, 14:31
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Cita:
Ah! y de paso dime como leches pones el cuadro ese tan majo para mencionar lo que dicen otros!!
Encerrando el texto entre etiquetas [*QUOTE] y [*/QUOTE] (sin los "*")
  #6 (permalink)  
Antiguo 21/06/2004, 15:51
Avatar de fario13  
Fecha de Ingreso: junio-2004
Ubicación: Entre Madrid y Logroño
Mensajes: 411
Antigüedad: 20 años
Puntos: 7
Gracias a todos y es especial a LeClub, por la magistral explicacion. Ya se por donde van los tiros; ahora solo me falta ponerme manos a la obra. Gracias otra vez y un saludo.
  #7 (permalink)  
Antiguo 21/06/2004, 18:16
Avatar de LeCLUB  
Fecha de Ingreso: abril-2003
Ubicación: Barcelona (España)
Mensajes: 205
Antigüedad: 21 años, 1 mes
Puntos: 1
Cita:
Iniciado por pempas
************************************************** ****
PD: Ojo, si al final te decides a utilizar esta forma, debes de tener muy en cuenta si existe algún Proxy entre el cliente y tu servidor (por ejemplo, los usuarios de ADSL de Telefónica navegan mediante proxy, por lo que TODOS los usuarios tienen la misma IP) Pero bueno, tambien hay solución para ello
************************************************** ******

Eso precisamente quería comentar, la gente que accede desde macro redes, como en mi caso (desde la empresa) todos tienen la misma IP, ¿Como lo controlas eso?

Ah! y de paso dime como leches pones el cuadro ese tan majo para mencionar lo que dicen otros!! jejeje

Salu2
La solución radica en registrar 2 IP's del cliente, en vez de una, y para ello se utilizan las variables de servidor:

REMOTE_ADDR
y
REMOTE_HOST

Un saludo
__________________
Documentación de VBScript V5.6 en Español:
http://download.microsoft.com/downlo...ES/scd56es.exe
  #8 (permalink)  
Antiguo 22/06/2004, 15:24
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 5 meses
Puntos: 6
Gracias, LeClub, pero, no me has explicado como haces el cuadrito, y encima me pones uno jejeje...

Dímelo va...
  #9 (permalink)  
Antiguo 23/06/2004, 11:52
Avatar de LeCLUB  
Fecha de Ingreso: abril-2003
Ubicación: Barcelona (España)
Mensajes: 205
Antigüedad: 21 años, 1 mes
Puntos: 1
pempas, te respondío a tu pregunta dazuaga, 3 posts más arriba ;)

[*QUOTE] esto es el texto que quieres encerrar [*/QUOTE] (quita los asteriscos para que funcione)

Si quito los asteriscos quedaría así:

Cita:
esto es el texto que quieres encerrar
__________________
Documentación de VBScript V5.6 en Español:
http://download.microsoft.com/downlo...ES/scd56es.exe
  #10 (permalink)  
Antiguo 25/06/2004, 00:16
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 5 meses
Puntos: 6
Vaya
Cita:
Estoy atontado...
ahora ya se como va
Cita:
jejejeje
Saludos a todos
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 22:43.