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

ayuda con buscador

Estas en el tema de ayuda con buscador en el foro de ASP Clásico en Foros del Web. me estoy guiando por un tema ya expuesto anteriormente pero me da error cuando le pido que me muestre el detalle de la empresa (en ...
  #1 (permalink)  
Antiguo 24/06/2007, 16:05
 
Fecha de Ingreso: febrero-2003
Mensajes: 233
Antigüedad: 21 años, 3 meses
Puntos: 4
ayuda con buscador

me estoy guiando por un tema ya expuesto anteriormente pero me da error cuando le pido que me muestre el detalle de la empresa (en link.asp)

este es el codigo que tengo

resultados.asp

<%
set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("empresas.mdb")&";"

SQL="SELECT * FROM empresas"
rs.Open SQL, oConn
do while not rs.eof
response.write(rs("tipo"))& "<br>"
response.write "<a href='link.asp?nombre="& rs("empresa") &"'>"& rs("empresa") & "</a><br>"
rs.movenext
loop
rs.close
oConn.close
%>

y... link.asp


<%
set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("empresas.mdb")&";"

SQL="SELECT * FROM empresas where empresa = ''"& request.Querystring("nombre") &"'"
rs.Open SQL, oConn

if not rs.eof then
do while not rs.eof
response.write rs("grupo") & "<br>"
response.write rs("direccion") & "<br>"
'etc
rs.movenext
loop

end if
%>



me da el siguiente error:

Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Error de sintaxis (falta operador) en la expresión de consulta 'empresa = ''vin99''.
/yijaaa/link.asp, línea 7


gracias de antemano
  #2 (permalink)  
Antiguo 25/06/2007, 05:22
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: ayuda con buscador

Chequea bien en la cadena de la sentencia SQL las comillas:

SQL="SELECT * FROM empresas where empresa = ''"&request.Querystring("nombre") &"'"

Si te fijas, antes del request.Querystring("nombre") hay unas comillas dobles: "" & donde deberia haber comillas simples:

SQL="SELECT * FROM empresas where empresa = '"&request.Querystring("nombre") &"'"

Por otra parte, te recomiendo que compruebes lo que viene en el request.QueryString. Esa sentencia es carne de cañon para un SQL injection



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
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 20:28.