<%
'*****************************************************************************************************
'Procedimiento para eliminar posible código SQL en las búsquedas
function limpiar(t)
dim tt
tt=t
tt=replace(tt,"""","")
tt=replace(tt,"'","")
tt=replace(tt,"--","")
tt=replace(tt,"delete","")
tt=replace(tt,"update","")
tt=replace(tt,"drop","")
' convendría tambien un
tt=server.htmlencode(tt)
limpiar=tt
end function
'*****************************************************************************************************
function Sacar(cadena,campos)
dim i
dim SacarAux
while InStr(cadena," ")
Cadena=Replace(Cadena," "," ")
wend
if (len(cadena)>0) and (cadena <> "img") and (cadena <> "table") and (cadena <> "object") and (cadena <> "src") and (cadena <> "width") and (cadena <> "height") and (cadena <> "target") then
'if InStr(cadena," ")>0 then
'Sacar= Sacar(left(cadena,InStr(cadena," ")-1),campos) & " OR " & Sacar(right(cadena,len(cadena)-InStr(cadena," ")),campos)
'elseif InStr(cadena,"+")>0 then
'Sacar=Sacar(left(cadena,InStr(cadena,"+")-1),campos) & " AND "& Sacar(right(cadena,len(cadena)-InStr(cadena,"+")),campos)
'elseif InStr(cadena,"-")>0 then
'Sacar=Sacar(left(cadena,InStr(cadena,"-")-1),campos) & " AND NOT " & Sacar(right(cadena,len(cadena)-InStr(cadena,"-")),campos)
'else
'fijamos la sentencia
SacarAux=""
i=1
SacarAux= "( " & campos(i) & " Like '%" & cadena & "%'"
i=i+1
while len(campos(i))>0
SacarAux= SacarAux & " OR " & campos(i) & " Like '%" & cadena &"%'"
i=i+1
wend
SacarAux=SacarAux & " )"
Sacar=SacarAux
'end if
else
sacar=""
end if
end function
'*****************************************************************************************************
dim SQL, Resultado, campos(3) 'el tamaño del array debe superar en uno al número de campos de búsqueda
campos(1)="CONTENIDOS_ESP.TITULAR"
campos(2)="CONTENIDOS_ESP.CONTENIDO"
dim sentencia
sentencia = Sacar(limpiar(Request.QueryString("txt")),campos)
if sentencia <> "" then 'para que no busque en la portada
SQL = "Select CONTENIDOS_ESP.IDCONTENIDO, CONTENIDOS_ESP.TITULAR, RELACION_SECCION_CONTENIDO.IDSECCION, SECCIONES.NOMBRE_ESP From CONTENIDOS_ESP, CONTENIDOS, RELACION_SECCION_CONTENIDO, SECCIONES Where (SECCIONES.IDIOMA <> 'inglés') AND (CONTENIDOS_ESP.IDCONTENIDO = CONTENIDOS.IDCONTENIDO) AND (CONTENIDOS.IDCONTENIDO = RELACION_SECCION_CONTENIDO.IDCONTENIDO) AND (RELACION_SECCION_CONTENIDO.IDSECCION = SECCIONES.IDSECCION) AND (SECCIONES.IDSECCION>0) AND (SECCIONES.IDBLOQUE IN (Select IDBLOQUE From BLOQUES Where IDBLOQUE = 62)) AND (CONTENIDOS.PUBLICAR <> 0) AND (CONTENIDOS.FECHAALTACONTENIDO <= CONVERT(datetime, '"&DATE&"', 103)) AND ((CONTENIDOS.FECHABAJACONTENIDO > CONVERT(datetime, '"&DATE&"', 103)) OR (CONTENIDOS.FECHABAJACONTENIDO IS NULL)) AND " & Sentencia & " ORDER BY RELACION_SECCION_CONTENIDO.IDSECCION ASC, CONTENIDOS.ORDEN ASC"
else
'Ponemos una consulta que sepamos que no va a devolver ningún registro
SQL = "Select ID From PORTADA Where ID > ID and IDDOMINIO = 8"
end if
Response.Write ""
Response.Write ""
Response.Write ""
'// Abrimos la consulta
Set Resultado = Server.CreateObject("ADODB.Recordset")
Resultado.Open SQL, Ruta, 2, 1
if sentencia <> "" then
Response.Write "Results: " & chr(34) & Request.QueryString("txt") & chr(34)
Response.Write " | "
Response.Write " "
Response.Write ""
Response.Write ""
if not Resultado.eof then
While not Resultado.eof
Response.Write "" & Resultado("NOMBRE_ESP") & ""
Response.Write " "
Resultado.MoveNext
Wend
else
Response.Write "No matching founded."
Response.Write " | "
end if
end if
Response.Write ""
Response.Write ""
Response.Write " "
'//Cerramos la consulta
Resultado.Close
Set Resultado = Nothing
%>
|
|