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

error '80020009' ocurrió una excepción.... no se porque

Estas en el tema de error '80020009' ocurrió una excepción.... no se porque en el foro de ASP Clásico en Foros del Web. Hola amigos.... tengo un problema que no se porque sucede, resulta que tengo este código: Código: <% 'Condición para ver si ya estan creadas las ...
  #1 (permalink)  
Antiguo 24/05/2005, 19:05
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
error '80020009' ocurrió una excepción.... no se porque

Hola amigos.... tengo un problema que no se porque sucede, resulta que tengo este código:
Código:
<%
'Condición para ver si ya estan creadas las cookies y saltarse el formulario
If Request.Cookies("Admin")("usuario") <> "" And Request.Cookies("Admin")("contrasena") <> "" Then
Response.Redirect ("menu.asp")
end If
'Declaración de variables
Dim conn
Dim rs
Dim sql
Dim usuario
Dim contrasena
Dim recordar
Dim autorizacion
'Rescatamos las variables del formulario
usuario = Request.Form("usuario")
contrasena = Request.Form("contrasena")
recordar = Request.Form("recordar")
'Condición para mostrar el formulario o redireccionar al menú
If usuario = "" and contrasena = "" Then
%>
<form method="post" action="default.asp">
<table border="1" bordercolor="<% = ColorBorde %>" width="50%" cellspacing="0" align="center">
<tr>
<td width="100%" bgcolor="<% = ColorFondoTitulo %>" colspan="2" align="center" class="text">Formulario de Ingreso al sistema</td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Nombre de Usuario:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="text" name="usuario" size="20" style="<% = InputEstilo %>"></td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Contraseña:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="password" name="contrasena" size="20" style="<% = InputEstilo %>"></td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Recordar la próxima vez:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="radio" value="si" name="recordar" checked>Si <input type="radio" value="no" name="recordar">No</td>
</tr>
<tr>
<td width="100%" bgcolor="<% = ColorFondo %>" colspan="2" align="center"><input type="submit" value="Ingresar" name="ingresar" style="<% = BotonEstilo %>"></td>
</tr>
</table>
</form>
<% 
else 
'Establecemos la conección a la base de datos
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../catalogo.mdb"))
'Creación de la sentencia SQL correspondiente (cambiar el valor de tabla por el nombre de la tabla que queremos seleccionar)
sql="Select * From Admin Where usuario = '" & usuario & "'"
'Ejecución de la orden
Set rs = Conn.Execute(sql)
'Condición que comprueba si el usuario y la contraseña corresponden a los de la base de datos
If usuario <> rs("usuario") Or contrasena <> rs("contrasena") Then 
Session("autorizacion") = -1
%>
<form method="POST" action="default.asp">
<table border="1" bordercolor="<% = ColorBorde %>" width="50%" cellspacing="0" align="center">
<tr>
<td width="100%" bgcolor="<% = ColorFondoTitulo %>" colspan="2" align="center" class="text">Formulario de Ingreso al sistema</td>
</tr>
<tr>
<td width="100%" bgcolor="<% = ColorFondo %>" colspan="2" align="center" class="text">El Nombre de Usuario o la Contraseña estan incorrectos</td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Nombre de Usuario:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="text" name="usuario" size="20" style="<% = InputEstilo %>"></td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Contraseña:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="password" name="contrasena" size="20" style="<% = InputEstilo %>"></td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Recordar la próxima vez:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="radio" value="si" name="recordar" checked>Si <input type="radio" value="no" name="recordar">No</td>
</tr>
<tr>
<td width="100%" bgcolor="<% = ColorFondo %>" colspan="2" align="center"><input type="submit" value="Ingresar" name="ingresar" style="<% = BotonEstilo %>"></td>
</tr>
</table>
</form>
<%
else 
Session("autorizacion") = 1
autorizacion = Session("autorizacion")
'Condición para crear la cookie
If recordar = "si" Then
Response.Cookies("Admin")("usuario") = usuario
Response.Cookies("Admin")("contrasena") = contrasena
Response.Cookies("Admin")("autorizacion") = autorizacion
end If
Response.Redirect ("menu.asp")
end If
end If
%>
Funciona todo bien hasta que pongo unnombre de usuario nulo, vale decir un nombre de usuario incorrecto. Cuendo pongo un nombre de usuario incorrecto me tira este error:

error '80020009'

Ocurrió una excepción.

/pruebas/catalogo/admin/default.asp, line 69

La verdad de las cosas es que no se porque me lo toma como una excepción, en el fondo estoy diciendo que si lo que rescate del formulario no coinside con lo que hay en la BD me muestre algo.... no entiendo

Lo otro es lo que esta con rojo, se puede hacer eso de meter en una cookie una variable de session????

O mejor seria en vez de esto:
Código:
If recordar = "si" Then
Response.Cookies("Admin")("usuario") = usuario
Response.Cookies("Admin")("contrasena") = contrasena
Response.Cookies("Admin")("autorizacion") = autorizacion
end If
Hacer esto y borrar la linea en rojo del código:
Código:
'Condición para ver si ya estan creadas las cookies y saltarse el formulario
If Request.Cookies("Admin")("usuario") <> "" And Request.Cookies("Admin")("contrasena") <> "" Then
Session("autorizacion") = 1
Response.Redirect ("menu.asp")
end If
Bueno espero su ayuda... gracias de antemano y saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!

Última edición por El_Metallick; 24/05/2005 a las 19:12
  #2 (permalink)  
Antiguo 25/05/2005, 05:03
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
lo que no entiendo es cómo metes la contraseña en una cookie. es muy inseguro.

respecto al error, creo que todo esta bien. no he encontrado nada ni en MSDN (que es mucho decir). ni idea de porqué falla.
  #3 (permalink)  
Antiguo 25/05/2005, 11:50
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
lo de la contraseña en la cookie es solo una prueba para que funcione bien.... despues logicamente que elimino eso.... pero no funciona pues y no tengo la mas minima idea de porque falla po
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!

Última edición por El_Metallick; 29/05/2005 a las 03:01
  #4 (permalink)  
Antiguo 29/05/2005, 03:04
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
cuando ingreso un usuarioincorrecto puede que el error sea porque no hay registros en la base de datos que cumplan con ese nombre por lo que seria un eof o no???... pero como le pongo para que considere esa opcion tambien????
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #5 (permalink)  
Antiguo 29/05/2005, 03:13
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
Siiiiii lo soucione... efectivamente como suponia era problema de que no habian registros en la base de datos, y lo solucione asi:
Código:
<%
'Condición para ver si ya estan creadas las cookies y saltarse el formulario
If Request.Cookies("Admin")("usuario") <> "" And Request.Cookies("Admin")("contrasena") <> "" Then
Session("autorizacion") = 1
Response.Redirect ("menu.asp")
end If
 
'Declaración de variables
Dim conn
Dim rs
Dim sql
Dim usuario
Dim contrasena
Dim recordar
Dim autorizacion
 
'Rescatamos las variables del formulario
usuario = Request.Form("usuario")
contrasena = Request.Form("contrasena")
recordar = Request.Form("recordar")
 
'Condición para mostrar el formulario o redireccionar al menú
If usuario = "" and contrasena = "" Then
%>
<form method="post" action="default.asp">
<table border="1" bordercolor="<% = ColorBorde %>" width="50%" cellspacing="0" align="center">
<tr>
<td width="100%" bgcolor="<% = ColorFondoTitulo %>" colspan="2" align="center" class="text">Formulario de Ingreso al sistema</td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Nombre de Usuario:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="text" name="usuario" size="20" style="<% = InputEstilo %>"></td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Contraseña:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="password" name="contrasena" size="20" style="<% = InputEstilo %>"></td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Recordar la próxima vez:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="radio" value="si" name="recordar" checked>Si <input type="radio" value="no" name="recordar">No</td>
</tr>
<tr>
<td width="100%" bgcolor="<% = ColorFondo %>" colspan="2" align="center"><input type="submit" value="Ingresar" name="ingresar" style="<% = BotonEstilo %>"></td>
</tr>
</table>
</form>
<% 
else 
 
'Establecemos la conección a la base de datos
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../catalogo.mdb"))
 
'Creación de la sentencia SQL correspondiente (cambiar el valor de tabla por el nombre de la tabla que queremos seleccionar)
sql="Select * From Admin Where usuario = '" & usuario & "'"
 
'Ejecución de la orden
Set rs = Conn.Execute(sql)
 
'Condición que determina que mostrar si no hay registros en la base de datos
If rs.eof Then
%>
<form method="POST" action="default.asp">
<table border="1" bordercolor="<% = ColorBorde %>" width="50%" cellspacing="0" align="center">
<tr>
<td width="100%" bgcolor="<% = ColorFondoTitulo %>" colspan="2" align="center" class="text">Formulario de Ingreso al sistema</td>
</tr>
<tr>
<td width="100%" bgcolor="<% = ColorFondo %>" colspan="2" align="center" class="text">El Nombre de Usuario o la Contraseña estan incorrectos</td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Nombre de Usuario:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="text" name="usuario" size="20" style="<% = InputEstilo %>"></td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Contraseña:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="password" name="contrasena" size="20" style="<% = InputEstilo %>"></td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Recordar la próxima vez:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="radio" value="si" name="recordar" checked>Si <input type="radio" value="no" name="recordar">No</td>
</tr>
<tr>
<td width="100%" bgcolor="<% = ColorFondo %>" colspan="2" align="center"><input type="submit" value="Ingresar" name="ingresar" style="<% = BotonEstilo %>"></td>
</tr>
</table>
</form>
<%
else
 
'Condición que comprueba si el usuario y la contraseña corresponden a los de la base de datos
If usuario <> rs("usuario") Or contrasena <> rs("contrasena") Then 
Session("autorizacion") = -1
%>
<form method="POST" action="default.asp">
<table border="1" bordercolor="<% = ColorBorde %>" width="50%" cellspacing="0" align="center">
<tr>
<td width="100%" bgcolor="<% = ColorFondoTitulo %>" colspan="2" align="center" class="text">Formulario de Ingreso al sistema</td>
</tr>
<tr>
<td width="100%" bgcolor="<% = ColorFondo %>" colspan="2" align="center" class="text">El Nombre de Usuario o la Contraseña estan incorrectos</td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Nombre de Usuario:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="text" name="usuario" size="20" style="<% = InputEstilo %>"></td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Contraseña:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="password" name="contrasena" size="20" style="<% = InputEstilo %>"></td>
</tr>
<tr>
<td width="56%" bgcolor="<% = ColorFondo %>" class="text">Recordar la próxima vez:</td>
<td width="50%" bgcolor="<% = ColorFondo %>"><input type="radio" value="si" name="recordar" checked>Si <input type="radio" value="no" name="recordar">No</td>
</tr>
<tr>
<td width="100%" bgcolor="<% = ColorFondo %>" colspan="2" align="center"><input type="submit" value="Ingresar" name="ingresar" style="<% = BotonEstilo %>"></td>
</tr>
</table>
</form>
<%
else 
 
Session("autorizacion") = 1
'Condición para crear la cookie
If recordar = "si" Then
Response.Cookies("Admin")("usuario") = usuario
Response.Cookies("Admin")("contrasena") = contrasena
end If
Response.Redirect ("menu.asp")
end If
end If
end If
%>
Pero encuentro que puedo borrar parte del código... o mejor dicho puedo corregir parte del códogo... ÇBueno eso pues saludos

PD sorry por las faltas de ortografia y too eso de escribir mal pero aca en Chile son las 5:30 de la mañana y vengo llegando de una fiesta jajajaja
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
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 16:46.