Hola Helbira, me alegro de que andes por este post,
el tenerte cerca es una garantía de profesionalidad,
pero por favor, (quizás llevado por la emoción hablé muy pronto)
en principio el codigo funciona, lo que pasa es que lo estoy chekeando completamente y no quiero ponerlo sin estar completamente seguro.
un momento nada más por favor y lo cuelgo pronto.
Gracias.
Lo prometido es deuda.
aquí está el codigo.
Básicamente, es que desde el archivo Global.asa creamos un objeto. MUY IMPORTANTE, ESE OBJETO NO PUEDE IR DENTRO DEL TAG <SCRIPT> DEL GLOBAL.ASA (al menos eso pone la documentación que he leido)
ARCHIVO GLOBAL.ASA
Código PHP:
<object runat="server" scope="application" id="online"
progid="Scripting.Dictionary"">
</object>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
End Sub
Sub Session_OnStart
End Sub
Sub Session_OnEnd
'-----------------------------------------------------
'INSERTAMOS EN LA VARIABLE NKEY LAS SESIONES PARA COMPROBAR SI EXISTE YA UN USUARIO EN LA WEB
nkey=session("password") & "," & session("usuario")
if online.Exists(nkey) THEN
online.Remove nkey
End if
End Sub
</SCRIPT>
Y EN LA PÁGINA EN LA QUE SE HACE LA CONSULTA A LA BASE DE DATOS CON USUARIO Y PASSWORD VA LO SIGUIENTE....
Código PHP:
'eliminamos las posibles comillas de la entrada
'para evitar la introducción de sentencias SQL
usuario=replace(request.form("usuario"),"'","")
password=replace(request.form("password"),"'","")
usuario=request.form("usuario")
password=request.form("password")
'-----------------------------------------------------------------------------------------------------------------------------------------
'LA SIGUIENTE LINEA NOS SIRVE PARA CONTROLAR QUE UN USUARIO NO ESTE AL MISMO TIEMPO
'DOS VECES DENTRO DE LA WEB CON SU USUARIO Y PASSWORD.PARA MAS INFORMACION MIRAR EL ARCHIVO GLOBAL.ASA
nkey=password & "," & usuario
'------------------------------------------------------------------------------------------------------------------------------------------
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=conexion.execute("SELECT * FROM clientes WHERE usuario='"&usuario&"' and password= '"&password&"'")
if registros.eof then
response.redirect "login.asp?msg=Usuario%20o%20password%20incorrectos"
end if
'-----------------------------------------------------------------------------------------------------------------------------
'EN ESTA LINEA COMPROBAMOS SI EL USUARIO YA SE ENCUENTRA DENTRO DE LA WEB
if online.Exists(nkey) THEN
response.redirect "login.asp?msg= Lo sentimos, ya existe un usuario dentro del campus utilizando su nombre de usuario y password "
'--------------------------------------------------------------------------------------------------------------------------------
ELSE
'SI NO SE HA CREADO AÚN EL USUARIO DESDE EL GLOBAL.ASA CREAMOS LAS SESIONES Y LE DEJAMOS ENTRAR
online.Add nkey , "a"
session("password")=registros("password")
session("usuario")=registros("usuario")
session("nombre")=registros("nombre")
session("apellido1")=registros("apellido1")
session("apellido2")=registros("apellido2")
session("autorizacion")=1
session.TimeOut = 20
registros.close
conexion.close
set registros = nothing
set conexion = nothing
response.redirect "fullscreen.htm"
end if
end if
%>
Bueno amigos, si quereis probarlo a ver como va, a mi me funciona bien.
Un saludo