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

ASP y acces (solucionado)

Estas en el tema de ASP y acces (solucionado) en el foro de ASP Clásico en Foros del Web. Hola, agradeceria mucho si alguien puede ayudarme, necesito conectar a una base de datos y no me funciona. Os dejo el código necesario, si alguien ...
  #1 (permalink)  
Antiguo 31/05/2005, 08:27
 
Fecha de Ingreso: mayo-2005
Mensajes: 8
Antigüedad: 19 años
Puntos: 0
ASP y acces (solucionado)

Hola, agradeceria mucho si alguien puede ayudarme, necesito conectar a una base de datos y no me funciona. Os dejo el código necesario, si alguien puede ayudarme se lo agradeceria muchísimo. Gracias.

error.htm y benvinguda.htm són dos pàginas que si funcionan. El problema está en que cuando inserto los campos del formulario siempre me pone datos incorrectos aunque ponga los datos que hay en la base de datos (que tiene dos campos). Creo que no conecta con la base.

el formulario.html és:

<html>
<body bgcolor="#dddddd">
<p><a href="inici.htm" target="inici"> Pagina principal </a></p>
<p><br><h3>Identificacin</h3> Necesitas un nick para poder participar en los foros </p>
<p> Si ya eres usuario de este forum: </p>

<form methode="post" action="validar.asp" >
identificador:<br> <input type="text" name="identificador" size=12> <br>
contraseña:<br> <input type="password" name="password" size=12> <br><br>
<input type=submit value="Validar"> <br>
</form>
<hr>
</p>
</body>
</html>


el codigo de validar.asp

<% Dim identificador, password, Con, rst
If Request.form("identificador") = "" OR Request.Form("password") = "" then

identificador = Trim(Request.Form("identificador"))
password = Trim(Request.Form("password"))
identificador = Replace(identificador,"'","''")
password = Replace(password,"'","''")


Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("usuaris.mdb")&";"

sql = "SELECT * FROM dades1 WHERE identificador = '"& identificador &"'"


set rst = Con.execute(sql)

If (rst.EOF =true) then
Response.Redirect("error.htm")

else
If rst("password") = password then
Session("Log")=TRUE
Response.Redirect("benvinguda.htm")
else
Response.Redirect ("error.htm")
end If
end If

'netejam i tancam la connexio.

rst.Close
Con.Close
Set rst = Nothing
Set con = Nothing
End If

%>

Última edición por gryndly; 01/06/2005 a las 07:44
  #2 (permalink)  
Antiguo 31/05/2005, 10:06
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
cambia esta linne

Código:
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("usuaris.mdb")&";"
por esta

Código:
Con.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("hard.mdb"))
__________________
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!!
  #3 (permalink)  
Antiguo 31/05/2005, 10:46
 
Fecha de Ingreso: mayo-2005
Mensajes: 8
Antigüedad: 19 años
Puntos: 0
hola!!
ya lo he probado y sigue sin funcionarme
gracias de todos modos
  #4 (permalink)  
Antiguo 31/05/2005, 11: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
debajo de sql pon response.write sql y postea lo que sale
__________________
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 31/05/2005, 11:29
Avatar de Pachangero  
Fecha de Ingreso: marzo-2005
Mensajes: 102
Antigüedad: 19 años, 2 meses
Puntos: 0
Saludos

Prueba con esta

Código:
 Con.Open ("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("usuaris.mdb"))
En caso de que no funcione, revisa la sección de Faqs

http://www.faqsdelweb.com/index.php?...id=15&q_id=313

Alguna debe de funcionar.
  #6 (permalink)  
Antiguo 31/05/2005, 11:33
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Pachanguero, a ver si vamos cambiando a OLEDB.....que ya va siendo hora. . fíjate en los mensajes anteriores al tuyo
  #7 (permalink)  
Antiguo 31/05/2005, 12:08
Avatar de Pachangero  
Fecha de Ingreso: marzo-2005
Mensajes: 102
Antigüedad: 19 años, 2 meses
Puntos: 0
Saludos

gryndly tienes que revisar bien los ejemplos que tengas, tenias varios errores.

Empezamos con el formulario del cual pides datos.

Tu tenias:
Código:
<html>
<body bgcolor="#dddddd">
<p><a href="inici.htm" target="inici"> Pagina principal </a></p>
<p><br><h3>Identificacin</h3> Necesitas un nick para poder participar en los foros </p>
<p> Si ya eres usuario de este forum: </p>

<form methode="post" action="validar.asp" >
identificador:<br> <input type="text" name="identificador" size=12> <br>
contraseña:<br> <input type="password" name="password" size=12> <br><br>
<input type=submit value="Validar"> <br>
</form>
<hr>
</p>
</body>
</html>
Ya corregido queda asi:

Código:
<html>
<body bgcolor="#dddddd">
<p><a href="inici.htm" target="inici"> Pagina principal </a></p>
<p><br><h3>Identificacin</h3> Necesitas un nick para poder participar en los foros </p>
<p> Si ya eres usuario de este forum: </p>

<form method="post" action="base.asp" >
identificador:<br> <input type="text" name="identificador" size=12> <br>
contraseña:<br> <input type="password" name="password" size=12> <br><br>
<input type=submit value="Validar"> <br>
</form>
<hr>
</p>
</body>
</html>
El error aqui era en la linea:

<form methode="post" action="validar.asp" >

<form method="post" action="base.asp" >

La letra e no va asi como la pagina a la cual estas llamando es otra.



Bueno y en el archivo BASE.ASP era lo siguiente:

Estabas diciendo que si estaban vacios alguno de los campos realizara la operación, cosa que no es correcta.
Código:
If Request.form("identificador") = "" OR Request.Form("password") = "" then

identificador = Trim(Request.Form("identificador"))
password = Trim(Request.Form("password"))
identificador = Replace(identificador,"'","''")
password = Replace(password,"'","''")
Te falto poner:
Código:
If Request.form("identificador") = "" OR Request.Form("password") = "" then
response.write("<h1><center> Faltan datos </center></h1>")
else

Dim identificador, password, Con, rs

identificador = Trim(Request.Form("identificador"))
password = Trim(Request.Form("password"))
identificador = Replace(identificador,"'","''")
password = Replace(password,"'","''")
Ahora en la conexion pon la linea que sugiere

El_Metallick

Código:
Con.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("usuaris.mdb"))
El codigo completo de la pagina BASE.ASP es

Código:
<html>
<body bgcolor="#dddddd">
<% 
If Request.form("identificador") = "" OR Request.Form("password") = "" then
response.write("<h1><center> Faltan datos </center></h1>")
else

Dim identificador, password, Con, rs

identificador = Trim(Request.Form("identificador"))
password = Trim(Request.Form("password"))
identificador = Replace(identificador,"'","''")
password = Replace(password,"'","''")

Set Con = Server.CreateObject("ADODB.Connection")
Con.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("usuaris.mdb"))

sql = "SELECT * FROM dades1 WHERE identificador = '"& identificador &"'"

set rs = Con.execute(sql)

If (rs.EOF =true) then
Response.Redirect("error.htm")
else 
If rs("password") = password then
Session("Log")=TRUE
Response.Redirect("benvinguda.htm") 
else 
Response.Redirect ("error.html") 
end If
end If

'netejam i tancam la connexio.

rs.Close 
Con.Close 
Set rs = Nothing
Set con = Nothing
End If

%>

</body>
</html>
Espero haberte ayudado.

Suerte.
  #8 (permalink)  
Antiguo 31/05/2005, 12:09
Avatar de Pachangero  
Fecha de Ingreso: marzo-2005
Mensajes: 102
Antigüedad: 19 años, 2 meses
Puntos: 0
Saludos

Por cierto trasgukabi

Lo hare en su momento.
  #9 (permalink)  
Antiguo 31/05/2005, 13:38
 
Fecha de Ingreso: mayo-2005
Mensajes: 8
Antigüedad: 19 años
Puntos: 0
Hola
Me equivoque al escribir base.asp, en realidad, era validar.asp.
Tambien lo prové con Driver..... y tampoco me funciona.
He puesto el código que me has dicho pero no me funciona, siempre me sale lo que me has puesto: FALTAN DATOS, a pesar de que hayan usuarios en la base de datos.
¿Cómo puedo hacer que me compare con los nombres que hay en la base de datos creada con Access? Creo que este es el problema.

Última edición por gryndly; 31/05/2005 a las 13:48
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 18:59.