Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ASP
 S.O.S
 Foro Bloqueado  Tema Bloqueado


Autor Temas
yeye
Starting Member

Venezuela
20 Posts
Mensajes - 02 Sep 2004 :  21:38:14  Ver Perfil  Enviar Email
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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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...

Jeniffer

buho_nero
Moderator

España
1316 Posts
Posted - 03 Sep 2004 :  13:23:43  Ver perfil  Enviar e-mail
Tu error está en la creación de la consulta:
sql="SELECT * From administrador WHERE (login LIKE '%%" & "txt2" & "%%' AND password LIKE '%%" & "txt3" & "%%')"

Lo mejor es que veas la variable sql y seguro que te das cuenta. Lo que pasa es que estás concatenando la cadena "txt2" no la variable txt2.
Debería ser:

sql="SELECT * From administrador WHERE (login LIKE '%%" & txt2 & "%%' AND password LIKE '%%" & txt3 & "%%')"

De todas formas no me parece adecuado el uso de esos metacaracteres.
Otra cosa, al usar el login y el pass en la clausula where estás permitiendo a cualquiera el saltarse esa consulta.

Inicio Pagina

yeye
Starting Member

Venezuela
20 Posts
Posted - 03 Sep 2004 :  18:45:15  Ver perfil  Enviar e-mail
Hola gracias por la atención sería posible de q me dieras alguna idea de cómo sería el SQL, ya he intentado de muchas formas pero aun no se soluciona mi problema. Ademas de que en el código tambien tenia un detalle con los nombres de los campos de textos que ya he arreglado

JenifferInicio Pagina

Henrydesousa
New Member

Venezuela
88 Posts
Posted - 03 Sep 2004 :  23:08:23  Ver perfil  Enviar e-mail
Hola Yeye, mira hazlo como dice Moderator sin utilizar los numerales. Yo particularmente lo he probado asi:
sql="select * from tabla where login='" & txtlogin & "' and clave='" & txtclave & "'".
Teniendo el cuidado de utilizar las comillas simples si el campo en la tabla es texto, y comillas solo dobles si es numerico.
Lo de que se salten la sentencia bueno eso ya es otro tema. Pruebalo asi a ver. Saludos.

Henry de SousaInicio Pagina

matrix_revolutions_neo
Junior Member

Mexico
249 Posts
Posted - 04 Sep 2004 :  02:13:42  Ver perfil  Enviar e-mail
Sería mejor que no usaras Like, sino que únicamente colocarás

where login='"&txt&"' etc...

Saludos


Everything that has a beginning has an EndInicio Pagina

yeye
Starting Member

Venezuela
20 Posts
Posted - 04 Sep 2004 :  20:21:07  Ver perfil  Enviar e-mail
Bueno muchas gracias, han sido de gran ayuda!!! ahora me toca colocar en práctica lo que me han dado, cuidense y gracias nuevamente!!!

JenifferInicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar