Tja Hej Rickard. Detta har varit uppe många gånger tidigare, men det är ett enkelt svar... Japp, det finns ju flera tecken som man bör undvika, jag har inte alla så här i huvudet, men det finns Det tecken som är farligt är just det du använder för att omgärda strängarna inne i din SQL-sats. Eftersom du ovan använder ' är det det tecknet som är farligt. Hade du använt " skulle " vara farligt, och om ´ går att använda och du använder det, så är det farligt. >Lägg gärna alla dina functioner i en egen fil, och inkludera den sedan på de sidor där de behövs. Det är lättare att köra med: Jag tycker att det är läskigt med dynamiskt uppbyggda SQL-satser. Finns det ingen möjlighet att använda sk ”parameterization”?Tecknet ' sabbar sql
Jag lägger till text med denna SQl raden:
SQL = ("Insert INTO lyrics(title,artist,lyric,name,[date])VALUES( '" & addTitle & "','" & addArtist & "','" & addLyrics & "','" & addName & "','" & addDate &"')")
Conn.Execute(SQL)
Men om man i formuläret har med ' tecknet så får ja felmeddelandet:
Microsoft JET Database Engine (0x80040E14)
Syntaxfel (operator saknas) i frågeuttrycket ''asdsad'<br><br>asd'''.
Hur kan ja fixa de?
Sv: Tecknet ' sabbar sql
Du måste passa dig för sk SQLinjection, dvs att någon skicka in "farliga" tecken.
Gör så här:
Function FixaTecken(strText)
IF isNull(strText) Then
FixaTecken = strText
Else
strText = Replace(strText,"'","''")
strText = Replace(strText,"´","´´")
FixaTecken = strText
End if
End Function
'används så här
SQL = ("Insert INTO lyrics(title,artist,lyric,name,[date])VALUES( '" & FixaTeckenaddTitle) & "',
'" & FixaTecken(addArtist) & "','....
Lägg gärna alla dina functioner i en egen fil, och inkludera den sedan på de sidor där de behövs.
Sv: Tecknet ' sabbar sql
Du måste ersätta alla ' med dubbla sådana ('').
<code>
Dim Text
Text = "Hejsan' hoppsan!"
Text = Replace(Text, "'", "''")
</code>Sv: Tecknet ' sabbar sql
det säkert folk som har.Sv: Tecknet ' sabbar sql
Sv:Tecknet ' sabbar sql
Dit kod funkar utmärkt när jag lägger den på sidan, men inte när jag har den i en separat fil som jag inkulderar med <!-- Include #Virtual "functions.asp" --> ..
Jag får felmeddelandet:
Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer: 'FixaTecken'Sv: Tecknet ' sabbar sql
<!--#include file="Styles/functions.inc"-->
Detta förutsätter att din asp-fil ligger i roten, och att du lägger functions.inc i mappen Styles.Sv:Tecknet ' sabbar sql