Bueno Maestro, siguiendo tus consejos me voy a poner manos a la obra,
¿puedo contar contigo para solventar las dudas de este novato?
hasta ahora.
ya estoy aquí de nuevo, he tardado un poquito pero ahora os cuento.
Bueno, maestro, vaya lio que he formado. ahora si que en verdad estoy más liado que antes.
un amigo y yo estuvimos ayer cerca de 8 horas con el código y no lo podemos sacar, te cuento para ver donde se encuentra el error.
como sabes, en la página login.asp se hace la conexion a la bd y se busca al usuario y password pero como tu me dijistes, metí en
la bd un campo llamado online con el tipo de dato true/false.
la idea es que cuando se hace la conexión a la bd sacar el campo como true y luego en el archivo global.asa en Sub Session_OnEnd
hacer de nuevo la conexión a la bd y escribir o actualizar el campo online a False.
¡¡¡¡¡¡PERO NO CONSIGO QUE LO HAGA!!!!
¡¡¡¡¡EN EL GLOBAL.ASA NO CONSIGO QUE EN SESSION_OnEnd PONGA EL CAMPO ONLINE EN FALSE¡¡¡¡¡
¡¡¡Y AHORA AL ENTRAR EN LA WEB CON EL USUARIO Y PASSWORD NO ME DEJA ENTRAR, PORQUE ME DICE QUE EL USUARIO YA SE ENCUENTRA DENTRO¡¡¡¡
o sea, que el campo online en la bd tiene el valor true
AYUDA POR FAVOR¡¡¡¡¡¡¡¡¡¡¡¡¡¡
espero haberme explicado.
ufff, si lo sacamos, este post tiene que ir derecho a las faqs de asp ¿ok?
ESCRIBRO EL CÓDIGO A CONTINUACIÓN......
EN LA PÁGINA LOGIN.ASP LO SIGUIENTE
Código PHP:
basedatos=server.mappath("../data/clientes.mdb")
set conexion = server.createobject("adodb.connection")
conexion.open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & basedatos & ";"
set registros = server.CreateObject("adodb.Recordset")
registros.open "SELECT * FROM clientes WHERE usuario='"&usuario&"' and password= '"&password&"'", conexion, 2, 3
if registros.eof and registros.bof then
response.redirect "login.asp?msg=Usuario%20o%20password%20incorrectos"
else
if registros("online")=True then
response.redirect "login.asp?msg= Ya existe un usuario utilizando su nombre de usuario y password "
else
registros("online") = True
registros.update
session("usuario")=registros("usuario")
session("nombre")=registros("nombre")
session("apellido1")=registros("apellido1")
session("apellido2")=registros("apellido2")
session("password")=registros("password")
response.redirect "puente.asp"
end if
registros.close
conexion.close
set registros = nothing
set conexion = nothing
end if
end if
LUEGO EN EL GLOBLAL.ASA LO TENGO DE LA SIGUIENTE MANERA....¡¡¡¡AQUI ESTÁ LA MADRE DEL CORDERO¡¡¡¡
Código PHP:
Sub Session_OnEnd
application.lock
'---------------------------------------------------
'Conexión para usuario único en la web el login ASP
basedatos=server.mappath("../data/clientes.mdb")
set conexion = server.createobject("adodb.connection")
conexion.open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & basedatos & ";"
conexion.execute "UPDATE clientes SET online=False WHERE usuario='"&session("usuario")&"' and password= '"&session("password")&"'"
'set registros = server.CreateObject("adodb.Recordset")
'registros.open "SELECT * FROM clientes WHERE usuario='"&"usuario"&"' and password= '"&"password"&"'", conexion, 2, 3
'registros("online") = False
'registros.update
'registros.close
'set registros = Nothing
conexion.close
set conexion = Nothing
------------------------------
application("vactivos")=application("vactivos")-1
application.unlock
End Sub
bueno, como vereis he estado realizando diferentes pruebas (lo tengo comentado las líneas en algunos sitios) pero no doy con ello. lo curioso es que ahora no puedo entrar en la web con usuario y passwor porque me da el valor true del campo online
espero y gracias de antemano