Försöker göra en inmatningssäker valideringsfunktion! Har kommit såhär långt, men har fortfarande problem.
<% Function ReplaceSpecialChars(arg)
strReplaceTemp = arg
If not isNull(strReplaceTemp) then
strReplaceTemp = replace(strReplaceTemp,"&","och")
strReplaceTemp = replace(strReplaceTemp,"<","")
strReplaceTemp = replace(strReplaceTemp,">","")
strReplaceTemp = replace(strReplaceTemp,"'","''")
strReplaceTemp = replace(strReplaceTemp,"""",""")
End if
ReplaceSpecialChars = strReplaceTemp
strReplaceTemp = ""
End function %>
Databasen för inmatningarna är en Access-db. Det går fortfarnade inte att infoga " (citattecken) , vet inte vad som är fel. Har testat med både ' och " - tecken. Det går ju inte att köra Replace(string, """, "'"), finns det nåt alternativ?
Ge gärna tips på fler osäkra tecken som jag kan Replace:a i funktionen! :)
Jag förstår inte varför du replacear <, >, & och ".
Av de tecknen du har i din funktion kan jag inte se att något annat än apostrof skulle vara farligt att mata in i databasen.
Jag skulle alltså tagit bort de ersättningarna.
Sedan: snälla, använd [kod]-taggar när du postar kod, så går koden lättare att läsa.
Du behöver bara ta hand om ' när du sparar data. Sen när du skall visa det på din webbsida så använd Server.HTMLEncode(strDinVariablemMedData) så ser den till att inte <> mm blir problematiskt.
Anledningen till de "onödiga" tecknen är att den även ska funka att skicka innehållet till Flash-filer. Där brukar &-tecknet strula till det.
Du bör i alla fall inte förstöra datat innan du stoppar in det i databasen. Gör förändringarna endast vid "utskriften" till flash-filen. Server.HTMLEncode som mrblonde tipsar om borde ta hand om det mesta. :)
Du behöver bara ta hand om ' när du sparar data. Sen när du skall visa det på din webbsida så använd Server.HTMLEncode(strDinVariablemMedData) så ser den till att inte <> mm blir problematiskt.
Är det numeriska, booleanska eller datumvärden så blir det ju en annan femma. Dock löser det sig oftast om man gör en typskonvertering.
Ett annat fall där det kan blir problem:
sql = "SELECT * FROM tblFoo ORDER BY " & Request("OrderBy")