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

Base de Datos Access.

Estas en el tema de Base de Datos Access. en el foro de ASP Clásico en Foros del Web. Hola a todos, hoy he decidido empezar a utlizar DB, despues de mirar diferentes tutoriales y scripts, creo que he comprendido como funcionan, pero como ...
  #1 (permalink)  
Antiguo 04/12/2002, 10:02
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
Base de Datos Access.

Hola a todos, hoy he decidido empezar a utlizar DB, despues de mirar diferentes tutoriales y scripts, creo que he comprendido como funcionan, pero como no, tengu algun que otro error.

He creado una DB con Access (per) y una tabla (per_ent) con los campos usuario, password, inicio, la idea es crear una página que te pida un nombre y contraseña y dependiendo de ello te envie a una página u otra. Hasta aquí ningún problema.

Este es la página ASP que controla la DB.

<%@ LANGUAGE=VBScript %>
<%
DIM BD, RS, SQL
Set BD = Server.CreateObject("ADODB.Connection")
BD.Open "DSN=imateu.com.per"

Set RS = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT * FROM per_ent WHERE usuario = 'jose'"

RS.Open SQL, BD

if RS.EOF then
Response.Redirect "default.htm"
end if

if RS.Fields ("password") <> Request.form(password) then
Response.Redirect "default.htm"
end if

if RS.Fields ("inicio") = null then
Response.Redirect "pagi.htm"
else
Response.Redirect RS.Fields("inicio")
end if



%>


Tal como está ahora, me da un error en la línea:

if RS.Fields ("password") <> Request.form(password) then

No se si lo hago bien!!!

También queria hacer que la línea que contiene el SQL, en vez de poner jose, puediera tener el valor del campo usuario, deberia poner algo así:

SQL = "SELECT * FROM per_ent WHERE usuario = '" & Request.form (usuario) & '"

Pero tampoco me funciona.

Espero que alguien me pueda ayudar.
  #2 (permalink)  
Antiguo 04/12/2002, 10:09
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
if RS.Fields ("password") <> Request.form("password") then
__________________
Manual de ASP Avanzado ;-)
  #3 (permalink)  
Antiguo 04/12/2002, 11:42
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
Ok, Gracias.

1er error resuelto.

Ahora,

Cuando pongo el nombre de usuario y la contraseña mal, me da un error en la línea 21,

Response.Redirect "default.html"


Los enbezados HTTP ya están escritas en el explorador cliente. Cualquier cambio en el encabezado HTTP se debe hacer antes de escribir el contenido de la página.

He cambiado default.html por http://www.dominio.com y da el mismo error.


Si la contraseña la pongo bien, me da el mismo error en la línea 27 (que es el otro Response), por lo que supongo que lee de la base de datos y los if los hace bien.

Creo que debe ser un error parecido al anterior, ya que hice otra página para enviar un mail y luego redireccionar a otro sitio y me iba bien, y creo que + o - el response, lo escribo igual.

Por favor, mirar también lo de la instrucción SQL, poniendo como valor a la variable usuario, el request.form("usuario").

GRACIAS...
  #4 (permalink)  
Antiguo 04/12/2002, 11:46
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
PERDON,

la última cuestión, la de la instrucción SQL, no me habia fijado, tabién era problema de las comillas del Request.form ("usuario")

queda así

SQL = "SELECT * FROM per_ent WHERE usuario = '" & Request.form ("usuario") & "'"
  #5 (permalink)  
Antiguo 04/12/2002, 11:49
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
luego de la línea <%@ LANGUAGE=VBScript %>, poné <% Response.Buffer = True %>
  #6 (permalink)  
Antiguo 05/12/2002, 01:16
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
Hola,

He puesto lo que me decias y me da error un error, algo como "error de encabezados" justo en la línea esta.

He mirado la instrucción esta, y en un manual pone que los valores pueden ser 0 y 1. He poniendo 1 (en teoría true), me da el mismo error y si lo pongo a 0, me da el error de antes, en la línea del Response.Redirect ...
  #7 (permalink)  
Antiguo 05/12/2002, 01:26
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 5 meses
Puntos: 1
http://www.faqsdelweb.com/index.php?..._id=29&q_id=93
  #8 (permalink)  
Antiguo 05/12/2002, 01:44
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
Ya he puesto la línea de buffer, la cosa está así:


<html>
<title>mirar</title>
<body>

<%@ LANGUAGE=VBScript %>
<%Response.Buffer=true%>

<% DIM BD, RS, SQL
Set BD = Server.CreateObject("ADODB.Connection")
BD.Open "DSN=imateu.com.per"

Set RS = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT * FROM per_ent WHERE usuario = '" & Request.form ("usuario") & "'"
RS.Open SQL, BD

if RS.EOF then
Response.Redirect "default.htm"
end if

if RS.Fields ("password") <> Request.form("password") then
Response.Write "http://www.imateu.com"
else
if RS.Fields ("inicio") = null then
Response.Write "http://imateu.com/usuaris/cro/pagi.htm"
else
Response.Write "http://imateu.com/usuaris/cro/" & RS.Fields("inicio")
end if
end if



%>
</body>
</html>



y me da el siguiente error:

objeto Response error 'ASP 0156 : 80004005'

Error de encabezado

/usuarios/cro/mirar.asp, line 6

Los enbezados HTTP ya están escritas en el explorador cliente. Cualquier cambio en el encabezado HTTP se debe hacer antes de escribir el contenido de la página.


La línea 6 es la que tiene Response.Buffer, creo que está bien.

He mirado otras consultas y la verdad, no entiendo que es lo que pasa.

El tema de los if y el resto, está bien, he cambiado "redirect" por "write" y el resultado es correcto.
  #9 (permalink)  
Antiguo 05/12/2002, 02:02
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 22 años, 3 meses
Puntos: 1
Pusiste Response.Write en vez de Response.Redirect , en las ultimas opciones.

No se si te andara el -> if RS.Fields ("inicio") = null then
si no anduviera intenta -> if Not RS.Fields ("inicio") <> "" then
porque los nulls no los interpreta bien.

saludos!
  #10 (permalink)  
Antiguo 05/12/2002, 02:17
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
Lo de los "if", funciona correctamente,

los write's los puse para probar, ya que como los redirect no me funcionan, para mirar si tenia algún otro problema.

Parece ser que funciona bien si quito la línea de Response.Buffer y pongo los write.

Pero si pongo la línea de Response.Buffers me da error en esa línea.

tanto si pongo Response.Write como si pongo Response.Redirect

Creo que lo he probado de todas las maneras, si los ejemplos que veo y las faq's que he visto funcionan, no entiendo por que no funciona esto.
  #11 (permalink)  
Antiguo 05/12/2002, 02:29
 
Fecha de Ingreso: febrero-2002
Ubicación: Mi ASP Bunker
Mensajes: 397
Antigüedad: 22 años, 3 meses
Puntos: 1
Sacale todos los tags html arriba y abajo , total no tienen contenido.

El tema es que una vez que ya genero alguna linea html te van a dar error los siguientes Response.Write
  #12 (permalink)  
Antiguo 05/12/2002, 02:50
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 7 meses
Puntos: 0
OK, ya funciona, era que tenia las etiquetas

<html> </html>

El if del null, también lo he cambiado, queda así.

if RS.Fields ("inicio") <> "" then
Response.Redirect "http://www.imateu.com/usuarios/cro/" & RS.Fields("inicio")
else
Response.Redirect "http://www.imateu.com/usuarios/cro/pagi.htm"
end if



Gracias a todos por vuestra ayuda !!!!

Ahora me pongo a hacer otra cosa y así practicar.
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 15:53.