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

S.o.s

Estas en el tema de S.o.s en el foro de ASP Clásico en Foros del Web. Hola espero me puedan ayudar sucede que estoy tratando de crear una función de acceso para la sesion de administrador dentro de un portal web ...
  #1 (permalink)  
Antiguo 02/09/2004, 13:46
 
Fecha de Ingreso: septiembre-2004
Mensajes: 9
Antigüedad: 19 años, 9 meses
Puntos: 0
Pregunta S.o.s

Hola espero me puedan ayudar sucede que estoy tratando de crear una función de acceso para la sesion de administrador dentro de un portal web que estoy haciendo. Tengo conectada una base de datos y dentro de ella hay una tabla llamada administrador con los siguientes campos:
Nombre, Login, Password

También tengo una página con el formulario y sus respectivos campos de texto.

Además tengo la página en asp con la conexion a la base de datos y los procesos.

El problema es que no me esta funcionando como debería ser, no permite ningun usuario o por el contrario permite cualquier usuario a la sesion administrador.

Estos Serian los Codigos que he utilizado

*Para la página del formulario:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Ventana del Administrador</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1" method="post" action="ingreso.asp">
<table width="41%" border="0">
<tr>
<td width="35%"><div align="justify"><strong><font size="2" face="Verdana, Helvetica, Arial">NOMBRE</font></strong></div></td>
<td width="65%"><input name="text1" type="text" id="text1"></td>
</tr>
<tr>
<td><div align="justify"><strong><font size="2" face="Verdana, Helvetica, Arial">LOGIN</font></strong></div></td>
<td><input name="text2" type="text" id="text2"></td>
</tr>
<tr>
<td><div align="justify"><strong><font size="2" face="Verdana, Helvetica, Arial">PASSWORD</font></strong></div></td>
<td><input name="text3" type="password" id="text3"></td>
</tr>
</table>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="Submit" value="Aceptar">
&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" name="Submit2" value="Cancelar">
</form>
</body>
</html>

*La pagina para la conexion y procesos de la bases de datos:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<% Dim rs1, ObjADO
Dim sql
Set ObjADO=Server.CreateObject("ADODB.Connection")
Set rs1=Server.CreateObject("ADODB.Recordset")
ObjADO.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/portalweb/bdatos/catedra.mdb")
txt1=request.form ("nombre")
txt2=request.form ("login")
txt3=request.form ("password")
sql="SELECT * From administrador WHERE (login LIKE '%%" & "txt2" & "%%' AND password LIKE '%%" & "txt3" & "%%')"
rs1.Open sql, ObjADO,1,2
if rs1.eof = true then
response.write "Usuario No Permitido"
else
response.redirect "administrador1.asp"
end if
%>
<title>ingreso</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
</body>
</html>

ESPERO Y ME PUEDAN AYUDAR CON EL PROBLEMA DE ANTEMANO GRACIAS...
  #2 (permalink)  
Antiguo 02/09/2004, 14:09
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Bueno, si estás tratando de validar usuarios no deberías hacer tu consulta de SQL con LIKE(parecido) sino igual...

sql="SELECT * From administrador WHERE login= '" & txt2 & "' AND password = '" & txt3 & "'"


Ahora no se si sea correcta tu forma de evaluar que sea EOF...
Recuerda que el If evalúa un booleano si/no, no es necesario en este caso el "=" aunque puedo estar equivocado, aun así funciona este código:

if rs1.eof then
response.write "Usuario No Permitido"
else
response.redirect "administrador1.asp"
end if

Espero que te sirva

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 02/09/2004, 14:36
 
Fecha de Ingreso: septiembre-2004
Mensajes: 9
Antigüedad: 19 años, 9 meses
Puntos: 0
Sigue el mismo problema

Gracias por tu atención, he cambiado la consulta de SQL al igual que las otras líneas, según lo que me has indicado. Pero sigue el error, me aparece el mensaje de Usuario No Permitido asi haya ingresado los datos que tengo en la tabla de administrador.
  #4 (permalink)  
Antiguo 02/09/2004, 14:42
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
OK, primero imprime la SQL a ver que te trae

Response.Write sql
Response.End

Antes de abrir el rs y lo pegas aqui


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 02/09/2004, 14:46
 
Fecha de Ingreso: septiembre-2004
Mensajes: 9
Antigüedad: 19 años, 9 meses
Puntos: 0
SELECT * From administrador WHERE login= '' AND password = ''
  #6 (permalink)  
Antiguo 02/09/2004, 14:56
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Ajá, pues es que los inputs de tu formulario no se llaman como los estás requiriendo

<td><input name="text2" type="text" id="text2"></td>
txt2=request.form ("login")

Deberías hacer el request por el text2, no login, pues no se llama así, por eso es que están pasando vacías esas variables a la SQL...
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 02/09/2004, 15:28
 
Fecha de Ingreso: septiembre-2004
Mensajes: 9
Antigüedad: 19 años, 9 meses
Puntos: 0

Cambie hasta los nombres de los campos de la tabla administrador en mi base de datos, lo q se llamaba login paso a ser text2 y lo que llamaba password paso a ser text3. pero aun nada sigue dando el error de Usuario No Permitido

<% Dim rs1, ObjADO
Dim sql
Set ObjADO=Server.CreateObject("ADODB.Connection")
Set rs1=Server.CreateObject("ADODB.Recordset")
ObjADO.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/portalweb/bdatos/catedra.mdb")
txt2=request.form ("txt2")
txt3=request.form ("txt3")
sql="SELECT * From administrador WHERE txt2= '" & txt2 & "' AND txt3 = '" & txt3 & "'"
rs1.Open sql, ObjADO,1,2
if rs1.eof then
response.write "Usuario No Permitido"
else
response.redirect "administrador1.asp"
end if
%>
  #8 (permalink)  
Antiguo 02/09/2004, 15:31
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
De nuevo, el problema no es en la base de datos, imprime la sentencia, ve si el formulario te está enviando esas variables...

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 02/09/2004, 15:36
 
Fecha de Ingreso: septiembre-2004
Mensajes: 9
Antigüedad: 19 años, 9 meses
Puntos: 0
el formulario no me esta enviando nada, sigue en blanco
  #10 (permalink)  
Antiguo 02/09/2004, 15:47
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Te fijaste en el mensaje que te digo que el campo del formulario se llama diferente que lo que llamas con el request? cambia los nombres de campos del formulario o los nombres de los campos que requieres con el request....

Request.Form("nombre_del_campo")

Hazte un bucle al principio del archivo que te deje ver que es lo que está llegando por el form

For each item in request.form
Response.Write item & "= " & request.form(item) & "<br>"
Next
Response.End

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 02/09/2004, 15:53
 
Fecha de Ingreso: septiembre-2004
Mensajes: 9
Antigüedad: 19 años, 9 meses
Puntos: 0
Tengo una duda en la pagina donde esta el formulario debo hacer la conexion a la base de datos?
  #12 (permalink)  
Antiguo 02/09/2004, 15:58
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Nooo, no te confundas, mira, tengo un input en un formulario ok?

<input type=text name="text1" value="">

En la página donde llega el formulario necesito obtener el campo que viene de dicho formulario y lo obtengo por su nombre...

<%
text1 = Request.Form("text1")
%>

Lo que tu tienes es que en los campos del formulario, no se llaman de la manera que los estás invocando con el request...

Analiza tu formulario y ve los requests que estás haciendo...
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 02/09/2004, 16:09
 
Fecha de Ingreso: septiembre-2004
Mensajes: 9
Antigüedad: 19 años, 9 meses
Puntos: 0
esta es la página del formulario

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Ventana del Administrador</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1" method="post" action="ingreso.asp">
<table width="41%" border="0">
<tr>
<td width="35%"><div align="justify"><strong><font size="2" face="Verdana, Helvetica, Arial">LOGIN</font></strong></div></td>
<td width="65%"><input name="text2" type="text" id="text2"></td>
</tr>
<tr>
<td><div align="justify"><strong><font size="2" face="Verdana, Helvetica, Arial">PASSWORD</font></strong></div></td>
<td><input name="text3" type="password" id="text3"></td>
</tr>
</table>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;
<input type="submit" name="Submit" value="Aceptar">
&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" name="Submit2" value="Cancelar">
</form>
</body>
</html>

y esta es mi página ingreso.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<% Dim rs1, ObjADO
Dim sql
Set ObjADO=Server.CreateObject("ADODB.Connection")
Set rs1=Server.CreateObject("ADODB.Recordset")
ObjADO.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/portalweb/bdatos/catedra.mdb")
txt2=request.form ("txt2")
txt3=request.form ("txt3")

sql="SELECT * From administrador WHERE txt2= '" & txt2 & "' AND txt3= '" & txt3 & "'"
rs1.Open sql, ObjADO,1,2
if rs1.eof then
response.write "Usuario No Permitido"
else
response.redirect "administrador1.asp"
end if
%>
<title>ingreso</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
</body>
</html>
  #14 (permalink)  
Antiguo 02/09/2004, 16:28
 
Fecha de Ingreso: septiembre-2004
Mensajes: 9
Antigüedad: 19 años, 9 meses
Puntos: 0
Hice el bucle y efectivamente aparece lo que inserto en el formulario

text2= Jaime
text3= 12345
Submit= Aceptar
  #15 (permalink)  
Antiguo 02/09/2004, 16:29
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
fijate que es correcot lo que u_goldman te comentaba:

En la página del formulario tenés:
...input name="text2"...
...input name="text3"...

En la página que lo recibís tenés:
txt2=request.form ("txt2")
txt3=request.form ("txt3")


Te falta una e en los request.form
__________________
...___...
  #16 (permalink)  
Antiguo 02/09/2004, 16:43
 
Fecha de Ingreso: septiembre-2004
Mensajes: 9
Antigüedad: 19 años, 9 meses
Puntos: 0
Cieeeeeerto, realmente no veia la ausencia de la e pero aun asi no lo hace

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<% Dim rs1, ObjADO
Dim sql
Set ObjADO=Server.CreateObject("ADODB.Connection")
Set rs1=Server.CreateObject("ADODB.Recordset")
ObjADO.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/portalweb/bdatos/catedra.mdb")
text2=request.form ("text2")
text3=request.form ("text3")
sql="SELECT * From administrador WHERE text2= '" & text2 & "' AND text3= '" & text3 & "'"
rs1.Open sql, ObjADO,1,2
if rs1.eof then
response.write "Usuario No Permitido"
else
response.redirect "administrador1.asp"
end if
%>
<title>ingreso</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
</body>
</html>
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 00:52.