Hola a todos los usuarios de los foros nuevamente:
 
Durante esta semana estoy intentando arreglar un pequeño problema que me persiste por más que intento arreglarlo.
 
Ha sido el hecho de colocar un contador de visitar con BD en global.asa, lo cual tendría que funcionar correctamente, pero en vez de ser así funciona únicamente con ciertos usuarios.
 
A continuación expongo el contenido de mi global.asa:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<SCRIPT language="VBScript" Runat="server"> 
 
Sub Application_OnStart()
 
'#### Activo libreria ActiveX para utilizar RecordSet en la web
<!-- METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library" TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}" -->
 
'#### Establezco la conexión con la BD para utilizarla en la web
	Application("ConexContadores") = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("mdb-database/Contadores.mdb")
	Application("ConexUsuarios") = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("mdb-database/Usuarios.mdb")
 
'#### Inicio Contador Usuarios Activos
	Application("ActiveUsers") = 0
 
End SUB 
 
Sub Application_OnEnd()
End SUB
 
Sub Session_OnStart() ' SENTENCIAS QUE SE EJECUTAN CADA VEZ QUE ENTRA UN USUARIO
 
'#### Formato de hora en España
	Session.LcID = 1034
 
'#### Guardamos las visitas en la BD si no soy yo
	Dim Connection, Casa, IP, Software, Procedencia, Lenguaje, URL, Fecha, Hora
	Casa = "62.57.43.1"
	IP = Request.ServerVariables("REMOTE_ADDR")
	Software = Request.ServerVariables("HTTP_USER_AGENT")
	Procedencia = Request.ServerVariables("HTTP_REFERER")
	Lenguaje = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
	URL = Request.ServerVariables("URL")
	Fecha = date()
	Hora = time()
 
	If IP <> Casa then
		Set Connection=Server.Createobject("ADODB.Connection")
		Connection.Open Application("ConexContadores")
		Connection.Execute("INSERT INTO visitantes(Ip, Software, Procedencia, Lenguaje, URL, Fecha, Hora) Values ('"&IP&"', '"&Software&"', '"&Procedencia&"', '"&Lenguaje&"', '"&URL&"', '"&Fecha&"', '"&Hora&"') ")
		Connection.Close
		Set Connection = nothing
	End If
 
'#### Añadimos un Usuario Activo al contador	
	Application.Lock()
	Application("ActiveUsers") = Application("ActiveUsers") + 1
	Application.UnLock()
 
'#### Tiempo en minutos para la expiración de la session	
	Session.Timeout = 10
 
End SUB 
 
Sub Session_OnEnd() ' SENTENCIAS A EJECUTAR AL IRSE UN USUARIO
 
'#### Eliminamos un Usuario Activo del contador 
	Application.Lock()
	Application("ActiveUsers") = Application("ActiveUsers") - 1
	Application.UnLock()
 
End Sub
 
</SCRIPT>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
Si quieres comprobar que no pueden entrar ( o algunos lo harán) pueden hacerlo en mi página de prueba. www.impresionweb.com
 
Tengo la base de datos "CONTADORES" con una única tabla y con un campo autonumérico que indica las visitas.
 
Lo raro que hay son unas observaciones que por medio de unos amigos he llegado a conclusión:
 - Cada vez que consigue entrar un usuario, todo correcto para éste, entra suma la visita...etc.
 - Cada vez que NO consigue entrar un usuario, le da un error de no se encuentra la pagina o error interno del servidor. ES ENTONCES, cuando observo que el próximo usuario que consigue entrar no tiene un numero de visita precesor, sino un numero más del que debería (saltándose un número o los que hayan sido) según usuarios no han podido entrar en la web.
 
 
Menuda bola ¿no?
Espero sin embargo que sea una tonteria.
 
Gracias por soportar este mensaje. 
   
 

 Problema con Global.asa
 Problema con Global.asa  
 
