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