Lige for at følge op på SQL injection som alle SKAL vide noget om.
Inden du skriver noget mere kode så tag lige et kik på hvad SQL injection er og hvordan man undgår det. Du kan lige så godt lære at undgå det fra starten så du ikke skal igennem 100 mill linjer kode bagefter.
http://www.4guysfromrolla.com/webtech/061902-1.shtmlI den forbindelse har jeg lavet nogle database funktioner, som jeg bruger til ALLE data, der skal i en SQL streng. De vigtige funktioner er DBText, DBNumber og DBDate, der dækker de 3 datatyper, som man kan smide i en databse. Du får lige hele min kode her:
function DBdate(funkDato)
if MyIsDate(funkDato) then
DBdate = ConstDateDele & ConvertDateToSQL(funkDato) & ConstDateDele
else
Response.write "'"& funkDato &"' is not valid date."
response.end
end if
end function
function DBNumber(funkNumber)
if IsNum(funkNumber) then
DBNumber = replace(funkNumber,",",".")
else
Response.write "'"& funkNumber &"' is not a number."
response.end
end if
end function
function DBText(funkText)
DBText = replace(trim(funkText&"")&"","'","''")
end function
Function ConvertDateToSQL(dato)
dim SQLYear,SQLMonth,SQLDay
SQLYear = Year(dato)
SQLMonth = right("0"&Month(dato),2)
SQLDay = right("0"&Day(dato),2)
if ConstDateFormat = 1 then
ConvertDateToSQL = SQLMonth&"-"&SQLDay&"-"&SQLYear
elseif ConstDateFormat = 2 then
ConvertDateToSQL = SQLYear&SQLMonth&SQLDay
else
ConvertDateToSQL = SQLYear&SQLMonth&SQLDay
end if
End Function
function IsNum(funkNumber)
IsNum = isnumeric(funkNumber&"")
end function
function MyIsDate(dato)
dim returVal
returVal = false
if len(dato) = 10 then
if isnumeric(left(dato,2)) then
if cint(left(dato,2)) >= 1 and cint(left(dato,2)) <= 31 then
if isnumeric(mid(dato,4,2)) then
if cint(mid(dato,4,2)) >= 1 and cint(mid(dato,4,2)) <= 12 then
if isnumeric(right(dato,4)) then
if mid(dato,3,1) = "-" and mid(dato,6,1) = "-" then
if isDate(dato) then
returVal = true
end if
end if
end if
end if
end if
end if
end if
end if
MyIsDate = returVal
end function