Jag har en text input för sökning av personnamn för det första Jag tycker du går tillväga på fel sätt. Du gör det omöjligt att söka efter fält som innehåller '-tecknet. man skall ju inte kunna söka på annat än bokstäver pga det är ett namn man söker efter.ersätta vilka tecken för sökning i DB?
har på "söksidan" gjort replace(request("namn"),"'","") samt replace(request("namn"),"%","")
Vilka fler tecken skall replacas för att säkerhetsställa att man inte kan ange ett sql-kommando (t ex. drop table ) och därmed förstöra i tabellen?
sql= "SELECT * from personer"
if request("namn") <> "" then
namn = request("namn")
namn = replace(namn, "'", " ")
namn = replace(namn, "&", " ") (edit)
namn = replace(namn, "%", " ")
sql = sql & "namn like '%" &namn & "%'"
end if
//standySv: ersätta vilka tecken för sökning i DB?
släng in "namn" i en variabel på sidan
och för det andra
så lär inte din replace-kod funka så speciellt bra
testa detta:
dim strNamn
strNamn = request.form("namn")
sql= "SELECT * from personer"
if strNamn<> "" then
strNamn = replace(strNamn, "'", " ")
strNamn = replace(strNamn, "&", " ")
strNamn = replace(strNamn, "%", " ")
sql = sql & " WHERE namn like '%" & strNamn & "%'"
end if
i sådanna fallSv: ersätta vilka tecken för sökning i DB?
SQL-Server:
<code>
Dim strSQL
Dim strWhere
Dim strNamn
If Len(Request("namn")) > 0 Then
strNamn = Request("namn")
strNamn = replace(strNamn, "'", "''")
strNamn = replace(strNamn, "%", "[%]")
strNamn = replace(strNamn, "_", "[_]")
strNamn = replace(strNamn, "[", "[[]")
strNamn = replace(strNamn, "]", "[]]")
strWhere = strWhere & " AND namn Like '%" &namn & "%'"
End if
If Len(strWhere) > 0 Then
strSQL = "SELECT * FROM personer WHERE " & Mid(strWhere, 6)
Else
strSQL = "SELECT * FROM personer"
End If
</code>
Access:
<code>
Dim strSQL
Dim strWhere
Dim strNamn
If Len(Request("namn")) > 0 Then
strNamn = Request("namn")
strNamn = replace(strNamn, "'", "''")
strNamn = replace(strNamn, "*", "[*]")
strNamn = replace(strNamn, "?", "[?]")
strNamn = replace(strNamn, "[", "[[]")
strNamn = replace(strNamn, "]", "[]]")
strWhere = strWhere & " AND namn Like '*" &namn & "*'"
End if
If Len(strWhere) > 0 Then
strSQL = "SELECT * FROM personer WHERE " & Mid(strWhere, 6)
Else
strSQL = "SELECT * FROM personer"
End If
</code>Sv: ersätta vilka tecken för sökning i DB?
Gjorde en grej i javascript som inte funkade man nu gör det det!
Tack