Contador de visitas

Hola averias33!
Bueno, mi problema es:
La página principal de mi web consta de tres frames, en uno de ellos he programado un contador de visitas con ASP, para ello he utilizado un fichero, y a medida que se accede a la página este aumenta en 1 su valor.
Problema:
Si me sitúo sobre el frame que contiene el contador y con el botón derecho pulso actualizar, el valor del contador incrementa tantas veces como yo he actualizado ese frame, y sólo se debería incrementar 1, pues sólo he accedido a la página una vez más. ¿Hay alguna manera de evitar esto? ¿Cómo puedo solucionarlo? ¿Me puedes ayudar?por fa, por favor... Gracias de antemano. Esta web es maravillosa!
2

2 Respuestas

25.425 pts.
Yo lo haría así:
A ti lo que te interesa es que cuando un nuevo usuario acceda a tu página, el contador se incremente, pero que no se incremente cuando navegue por tu web de página en página o cuando recargue la página con los tres frames.
Existe un fichero llamado global. Asa, imagino que lo conocerás, donde se guarda la configuración de tu sitio web. Bien existe un procedimiento dentro de Global. Asa:
Sub Session_OnStart
End Sub
Que se activa cada vez que un usuario nuevo se conecta, ya que se crea una variable de sesión que permanece activa mientras el usuario este navegando por tu web y se destruye por defecto cuando el usuario esta más de 20 minutos sin moverse por tu página (aunque este tiempo se puede Configurar).
Dentro de este procedimientos puedes meter lo que quieres que se haga cuando un nuevo usuario se conecta, en nuestro caso en concreto yo incrementaría un contador que se incrementara en uno cada vez que alguien entra en tu web.
Así parte del fichero global. Asa quedaría así
Sub Application_OnStart
application.lock
application("visitas")=0
application.unlock
End Sub
' esto crea la variable contador al principio cuando empieza a funcionar tu web o cuando se reinicia (porque por ejemplo se hubiese caido el servidor)
Sub Session_OnStart
application.lock
application("visitas")=application("visitas")+1
application.unlock
End Sub
Sub Session_OnEnd
'aqui va codigo que se ejecuta cuando termina la sesion del usuario
End Sub
Sub Application_OnEnd
'y aqui cuando se cae el servidor o se reinicia.
End Sub
La variable application("visitas") es la que guarda los usuarios que visitan así que solo tendrás que mostrar su valor en ese frame.
Se puede mejorar esto de tal forma que aunque se cayera el servidor no se ponga a cero la variable. Yo lo haría guardando en una tabla de una base de datos el valor del contador cada vez que entra un usuario. Para ello en Sub Sessio_OnStart pondira un código que actualizaría una tabla donde en un campo guardarse el valor del contador. Con que crees una tabla con un única campo donde guardaras el contador bastara.
Ah pues si te gusta esta web hay otra que acaba de salir pero tiene muy buena pinta y creo que mucho futuro. La tienes en www.expertoseninformatica.com por si te interesa.
Hola averias333!
Te doy muchísimas, muchísimas gracias por responderme, y tan pronto y además por demostrar tanto interés en ayudarme. Gracias de nuevo.
Bueno, pues si te soy sincera no conozco ese fichero y por lo tanto no sé como puedo acceder a él.
Si puedes ayudarme un poquito más, diciéndome como acceder a él. ¿Por favor?
Gracias, gracias infinitamente.
Vimianzo, esta es la estructura básica (vacía) de un fichero global. Asa. Lo puedes crear tu misma copiándolo por ejemplo en el bloc de notas y guardándolo en el directorio raíz de tu aplicación web. Llamalo global. Asa tal como te lo escribo. Desde el momento que lo guardas cada vez que cualquier usuario llame a tu página se ejecutara el fichero así que rellena el código entre Sub... End SUb con lo que tu quieras que se ejecute. Es muy fácil, los onStart indican para sesión que se ejecute algo cuando un usuario entre a tu web y para Aplication cuando se inicie por primera vez(o se reinicie la ampliación web), los OnEnd es cuando un usuario abandone la sesión (pasados 20 minutos sin hacer nada) o la aplicación se caiga o reinicie.
<SCRIPT LANGUAGE="vbscript" RUNAT="Server">
Sub Application_OnStart
End Sub
Sub Session_OnStart
End Sub
Sub Session_OnEnd
End Sub
Sub Application_OnEnd
End Sub
</SCRIPT>
De todas formas para saber más sobre global. Asa tecela en google por ejemplo eso mismo:global. Asa.
Suerte en todo.
PD.-Modifica lo que te mande en el mensaje anterior poniendo el contandor dentro de session_onstar y aplication_onstart visualiza la variable application("visitas") en alguna parte de tu web.
Oye! Desde galicia te doy muchas gracias por ser tan atento conmigo y molestarte tanto explicándome todo al pie de la letra. Bueno, lo intentaré, pero si no logro hallar la solución cuando este desesperada te vuelvo a molestar, eh!
Muchas gracias de nuevo y me has ayudado un montón.
397.400 pts. Que quieres que te diga, desde pequeño arreglaba...
Puedes solucionarlo y solo cuentas cada persona por IP

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas