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

Ayuda con script de sesion de usuarios

Estas en el tema de Ayuda con script de sesion de usuarios en el foro de ASP Clásico en Foros del Web. Hola amigos, estoy tratando de hacer un sistema de reconocimiento de usuarios, pero me manda el siguiente error: ::::::::::::::::: Microsoft OLE DB Provider for ODBC ...
  #1 (permalink)  
Antiguo 15/08/2006, 18:04
 
Fecha de Ingreso: mayo-2005
Ubicación: Cancun
Mensajes: 35
Antigüedad: 19 años
Puntos: 0
Ayuda con script de sesion de usuarios

Hola amigos, estoy tratando de hacer un sistema de reconocimiento de usuarios, pero me manda el siguiente error:

:::::::::::::::::
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/Admin/verificar.asp, line 36
:::::::::::::::::

Les pongo el codigo del script:

::::::::::::::::

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252" LCID="2058" %>
<%
Dim usuario, password

If Request.Form("usuario") = "" OR Request.Form("password") = "" then
Response.Redirect "Administrador.htm"
Else
'Guardamos los datos del Form en variables y evitamos la comilla simple
usuario = Trim(Request.Form("usuario"))
password = Trim(Request.Form("password"))
usuario = Replace(usuario,"'","''")
password = Replace(password,"'","''")

'Conectamos a nuestra BD.
'defino las variables a utilizar
Dim oConn, sDSNDir, RS
Dim db_name, db_username, db_userpassword
Dim db_server, dsn_name
'defino el nombre del dsn
dsn_name = "access_catalogo.dsn"
'defino la ruta de acceso para la bd
sDSNDir = Server.MapPath("../_dsn")
'declaro el objeto de coneccion en el servidor
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.ConnectionString = "filedsn=" & sDSNDir & "\" & dsn_name
oConn.Open

'Seleccionamos de la tabla solo los registros que concuerden con el usuario del Form.
Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.ActiveConnection = oConn
RS.Source = "SELECT * FROM Usuarios WHERE usuario = '"& usuario &"'"

RS.CursorType = 3
RS.CursorLocation = 3
RS.LockType = 1
'aqui marca el error
RS.Open ()

'Si el valor EOF (fin de la tabla elegida) es verdadero, no existe el usuario.
If (RS.EOF = true) then
Response.Write "Ese usuario no existe"
ElseIf RS.Fields("password") = password then 'Si el campo de la tabla es igual a nuestra variable, estas logueado.
Response.Write "Te logueaste con exito... Bienvenido <B>"& usuario &"</B>"
Else 'Otra cosa, seria cuando el password no es la que seleccionamos.
Response.Write "Esa contraseña no concuerda con el usuario ingresado"
End If

'Limpiamos y cerramos.
RS.Close
oConn.Close
Set RS = Nothing
Set oConn = Nothing
End If
%>
  #2 (permalink)  
Antiguo 16/08/2006, 04:47
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Código:
'Seleccionamos de la tabla solo los registros que concuerden con el usuario del Form.
Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.ActiveConnection = oConn
sql = "SELECT * FROM Usuarios WHERE usuario = '"& usuario &"'"
response.write sql
response.end
escribe esto y pega aquí la salida
  #3 (permalink)  
Antiguo 16/08/2006, 08:26
Avatar de jahman  
Fecha de Ingreso: noviembre-2003
Ubicación: Oslo
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
como se puede mostrar una lista de cuantos usuarios han iniciado sesion?
Gracias.

Última edición por jahman; 16/08/2006 a las 10:03
  #4 (permalink)  
Antiguo 16/08/2006, 19:26
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Lo que Más me gusta de este foro es el sentido de CONTINUIDAD que tienen ciertos usuarios.

Busca en las FAQ, Jahman...
  #5 (permalink)  
Antiguo 17/08/2006, 07:36
Avatar de jahman  
Fecha de Ingreso: noviembre-2003
Ubicación: Oslo
Mensajes: 230
Antigüedad: 20 años, 6 meses
Puntos: 0
ja, en este caso la continuidad se referia a otro tema relacionado pero diferente punto, en fin enc uanto a la pregunta que realize lo resolvi creando una bandera en la tabla y ingresar 1 al logearse de este modo manejo el timeout y el deslogeo, pero aun me falta el manejo al cerrar la ventana, aunque me surgio una duda con el timeout..

que pasa con la session con timeout si el usuario cierra la ventana, sigue corriendo hasta los minutos que quedan o se cierra la session?

creen que esta es la forma mas conveniente para manejar y saber a los usuarios logeados??? ojala que me den sugerencias. Gracias.
  #6 (permalink)  
Antiguo 17/08/2006, 08:03
 
Fecha de Ingreso: mayo-2005
Ubicación: Cancun
Mensajes: 35
Antigüedad: 19 años
Puntos: 0
Perdon la tardanza

Les agradezco su ayuda, pero me entro virus y acabo de terminar de restablecer la maquina, agradezco mucho la ayuda con el codigo para sesion. Antes de haber visto sus respuestas, se me ocurrio cambiar el nombre de las variables y por alguna extraña razon quedo, aqui les pongo el codigo de como quedo y ya esta funcionando.

MIL GRACIAS de nueva cuenta.

:::::::::::::::::::::::::::::::::::::::::::

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252" LCID="2058" %>
<%
Dim usuario, password

If Request.Form("usuario") = "" OR Request.Form("password") = "" then
Response.Redirect "Administrador.htm"
Else
'Guardamos los datos del Form en variables y evitamos la comilla simple
usuario = Trim(Request.Form("usuario"))
password = Trim(Request.Form("password"))
usuario = Replace(usuario,"'","''")
password = Replace(password,"'","''")

'Conectamos a nuestra BD.
'defino las variables a utilizar
Dim oConn, sDSNDir, oRS
Dim db_name, db_username, db_userpassword
Dim db_server, dsn_name
'defino el nombre del dsn
dsn_name = "access_catalogo.dsn"
'defino la ruta de acceso para la bd
sDSNDir = Server.MapPath("../_dsn")
'declaro el objeto de coneccion en el servidor
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.ConnectionString = "filedsn=" & sDSNDir & "\" & dsn_name
oConn.Open

'Seleccionamos de la tabla solo los registros que concuerden con el usuario del Form.
Set oRS = Server.CreateObject ("ADODB.RecordSet")
oRS.ActiveConnection = oConn
oRS.Source = "SELECT * FROM Usuarios WHERE Login = '"& usuario &"'"

oRS.CursorType = 3
oRS.CursorLocation = 3
oRS.LockType = 1
oRS.Open ()

'Si el valor EOF (fin de la tabla elegida) es verdadero, no existe el usuario.
If (oRS.EOF = true) then
Response.Write "Ese usuario no existe"
ElseIf oRS.Fields("Contrasenia") = password then 'Si el campo de la tabla es igual a nuestra variable, estas logueado.

Session("usuario")=request.form("usuario")
Session("clave")=request.form("password")
Dim aceptado
Session("aceptado")="SI"

Response.Redirect("Menu.asp")


Else 'Otra cosa, seria cuando el password no es la que seleccionamos.
Response.Write "Esa contraseña no concuerda con el usuario ingresado"
End If

'Limpiamos y cerramos.
oRS.Close
oConn.Close
Set oRS = Nothing
Set oConn = Nothing
End If
%>
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 20:50.