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

Ya no puedo mas.. Validacion de Usuarios

Estas en el tema de Ya no puedo mas.. Validacion de Usuarios en el foro de ASP Clásico en Foros del Web. Por más que lo intento no consigo que funcione la validacion... Os expongo mi problema a ver si podeis echarme una mano (aunque necesitaria las ...
  #1 (permalink)  
Antiguo 08/12/2003, 15:58
Avatar de FriXueLiNa  
Fecha de Ingreso: junio-2003
Ubicación: Oviedo (Asturias)
Mensajes: 27
Antigüedad: 21 años
Puntos: 0
Ya no puedo mas.. Validacion de Usuarios

Por más que lo intento no consigo que funcione la validacion... Os expongo mi problema a ver si podeis echarme una mano (aunque necesitaria las dos... )

Necesito restringir el acceso a la página para que solo puedan acceder los socios. Mi intencion es que tengran que intruducir su número de socio y los apellidos para poder entrar...
Tengo una base de datos en access llamada "base", una tabla llamada "socios", y dos campos, el primero llamado "numero" y el segundo "apellidos".

La página para registrarse en htm, con un formulario apuntando a la página val.asp, que tiene el siguiente código:
Cita:
<html>
<head>
<title>Validacion</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
Dim usuario, password, oConn, RS
'Primero nos fijamos si ambos campos fueron completados.
'Si no se cumple, redireccionamos a pagina1.asp
If Request.Form("usuario") = "" OR Request.Form("password") = "" then
Response.Redirect "registro.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.
Set oConn = Server.CreateObject ("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("base.mdb")

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

'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
%>

</body>
</html>
Abro la página de registro, meto un número de socio, los apellidos y nada... blanco... cero... No sale nada en la página. Pruebo metiendo un numero erróneo y lo mismo.
Se que es porque me falta la página a la que lleva el registro, ya sea el bueno o el erróneo, pero... ¿donde meto el código de estas dos páginas?¿está bien el código que os puse?¿como hago para que las páginas no se puedan ver sin que uno esté validado?¿hay alguna forma - supongo que si - de que una vez que el socio ya se validó, la próxima vez que vuelva a entrar a la página ya no sea necesario que se vuelva a registrar?. Vamos, que el sistema lo reconozca automaticamente...

Si... soy una preguntona... pero por mas que investigo y leo no soy capaz a conseguir que funcione, y lamentablemente voy contrarreloj

Gracias por vuestra ayuda!!
  #2 (permalink)  
Antiguo 08/12/2003, 16:27
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Por que no introduces el valor del usuario que te devuelve el sql en una variable de sesion y apartir de ahi le das privilegios para acceder a unas paginas o a otras.
  #3 (permalink)  
Antiguo 08/12/2003, 16:38
Avatar de FriXueLiNa  
Fecha de Ingreso: junio-2003
Ubicación: Oviedo (Asturias)
Mensajes: 27
Antigüedad: 21 años
Puntos: 0
ejem....

Eso parece una respuesta... pero no tengo idea de que me hablas...

Deberia haber dicho que mis conocimientos de asp son nulos

Gracias de todas formas!!
  #4 (permalink)  
Antiguo 08/12/2003, 16:56
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
<%

nombreusuario=request.form("nombreusuario") pass=request.form("pass")


'Verificar nombre usuario and password

set rs=db.execute("select * from usuarios where nombreusuario='" & nombreusuario & "'")

if rs.eof then
Session("verificado")=false

response.redirect("index.asp?mensage=" & Server.URLEncode("Error: Usuario desconocido!"))
else
'Comprobar password coinciden
if rs("password")=request.form("pass") then
'Validar usuario
Session("verificado")=true

response.redirect("adinicial.asp")
else
Session("verificado")=false

response.redirect("index.asp?mensage=" & Server.URLEncode("Error: Password incorrecto!"))
end if
end if%>


A ver si esto te ayuda
  #5 (permalink)  
Antiguo 08/12/2003, 20:52
 
Fecha de Ingreso: diciembre-2003
Ubicación: por ahi
Mensajes: 2
Antigüedad: 20 años, 6 meses
Puntos: 0
pues te recomiendo que no utlilices los apellidos para iniciar una sesion de socio, los apellidos se repiten con frecuencia y te podrian dar respuestas no deseadas, usa un nombre de usuario y un pass normal, y para validar el ingreso utiliza rutinas de javascript para validar datos de texto y numericos asi:


dim sql,con,rs
set con = server.createObject("ADODB.Connection")
con.open "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & server.MapPath("/sis/base_de_datos/vivienda.mdb")
set rs = server.CreateObject("ADODB.Recordset")
if request.form("rol")="cliente" then
sql = "Select * From cliente Where (nomusuariocli = '" & request.form("txtnombre") & "')"
rs.open sql,con,1,2
if rs.eof and rs.bof then
response.write("<center><b>Ese usuario no existe</b></center>")%>
<body bgcolor="#006699" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<div align="center"><strong><a href="javascript:history.back(-1);">Volver</a></strong>
<%
else
rs.close
sql = "Select passcli from cliente where (nomusuariocli = '" & request.form("txtnombre") & "')"
usuario = request.form("txtnombre")
rs.open sql,con,1,2
set pass=rs("passcli")
if request.form("txtpass") = pass then
rs.close
set rs = nothing%><body bgcolor="#006699" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
</div>

<% session("usuariocliente") = request.form("txtnombre")
response.redirect("clienteactivo.asp") %>

<div align="center">
<%else
response.write("<center><b>Datos erroneos</b></center>")%>
<strong><a href="javascript:history.back(-1);">Volver</a></strong>
<%
end if
end if

else
sql = "Select * From constructor Where (nomusuariocon = '" & request.form("txtnombre") & "')"
rs.open sql,con,1,2
if rs.eof and rs.bof then
response.write("<center><b>Este usuario no existe</b></center>")%>
<strong><a href="javascript:history.back(-1);">Volver</a></strong>
<%
else
rs.close
sql = "Select passcon from constructor where (nomusuariocon = '" & request.form("txtnombre") & "')"
usuario = request.form("txtnombre")
rs.open sql,con,1,2
set pass=rs("passcon")
if request.form("txtpass") = pass then
rs.close
set rs = nothing%><body bgcolor="#006699" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
</div>
<% session("usuarioconstructor")=request.form("txtnom bre")
response.redirect("constructoractivo.asp")%>
<div align="center">
<%else
response.write("<center><b>Datos erroneos</b></center>")%>
<strong><a href="javascript:history.back(-1);">Volver</a></strong>
<%
end if
end if
end if

con.close
set con =nothing
%>


este codigo valida datos de un formulario en la pagina default.asp y los valida en la base de datos creando la conecion ADODB con un uuser name y una contraseña, puedes arreglarlo a tu gusto ... espero te sirva
  #6 (permalink)  
Antiguo 09/12/2003, 04:21
Avatar de FriXueLiNa  
Fecha de Ingreso: junio-2003
Ubicación: Oviedo (Asturias)
Mensajes: 27
Antigüedad: 21 años
Puntos: 0
Uf... muchisimas gracias Andrés, pero creo que dimito... Estos lenguajes tipo asp y php no son lo mio .
De todas formas me guardo el código para experimentar con él con calma ya que ahora casi no tengo tiempo y la página ha de estar lista ya. Creo que han de conformarse con el registro para los foros y las galerías fotográficas y van que chutan...

Gracias de nuevo !!!!!
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 22:54.