/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Update problem
Fra : Klaus Egebjerg


Dato : 24-06-02 19:24

Hej

Jeg har fået et lidt sjovt problem. Jeg har lavet følgende sætning til
update af en access DB:

strQ = "UPDATE Opskrifter SET Olnavn ='"&Olnavn1&"'," & "Stil
='"&strStil&"'," & "Typ ='"&Typ&"'," & "Offentlig ='"&strOffentlig&"'," &
"Literfardig='"&strLiterfardig&"'," & "Literurt='"&strLiterurt&"'," &
"PH='"&strPH&"'," & "OG='"&strOG&"'," & "FG='"&strFG&"'," &
"Gar='"&strGar&"' WHERE Id = " & nIdd & ""

Det virker også meget godt, men hvis brugeren indtaster fx. OP's altså med '
så går den i fejl. Kan det være rigtig, at man ikke kan anvende det ?

--
Med venlig hilsen

Klaus Egebjerg




 
 
Jakob Andersen (24-06-2002)
Kommentar
Fra : Jakob Andersen


Dato : 24-06-02 20:08

"Klaus Egebjerg" <klausegebjerg@get2net.dk> wrote in message
news:WyJR8.8610$va.726292@news000.worldonline.dk...
> Det virker også meget godt, men hvis brugeren indtaster fx. OP's altså med
'
> så går den i fejl. Kan det være rigtig, at man ikke kan anvende det ?

Da apostrof (') marker starten og slutningen på et stykke tekst i SQL tror
din database at rækken af tekst slutter når brugeren indtaster en apostrof.
I Access og Microsoft SQL Server neutraliserer man (også kaldet: at escape)
en apostrof vha. en apostrof mere altså sådan: ''

Dvs.at du på alle dine teksstrenge der bruges i SQL skal gøre følgende:

navnpådinvariabel = Replace( navnpådinvariabel, "'", "''" )

Jeg har skrevet en artikel om hvorfor dette sikkerhedsmæssigt også er en god
ide:
<http://activedeveloper.dk/locator.asp?guid=001000000297>

--
Jakob Andersen



Jesper Stocholm (24-06-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 24-06-02 20:16

Klaus Egebjerg wrote in
news:WyJR8.8610$va.726292@news000.worldonline.dk:

> Hej
>
> Jeg har fået et lidt sjovt problem. Jeg har lavet følgende sætning til
> update af en access DB:
>
> strQ = "UPDATE Opskrifter SET Olnavn ='"&Olnavn1&"'," & "Stil
> ='"&strStil&"'," & "Typ ='"&Typ&"'," & "Offentlig
> ='"&strOffentlig&"'," & "Literfardig='"&strLiterfardig&"'," &
> "Literurt='"&strLiterurt&"'," & "PH='"&strPH&"'," & "OG='"&strOG&"',"
> & "FG='"&strFG&"'," & "Gar='"&strGar&"' WHERE Id = " & nIdd & ""
>
> Det virker også meget godt, men hvis brugeren indtaster fx. OP's altså
> med ' så går den i fejl. Kan det være rigtig, at man ikke kan anvende
> det ?

nej ... men da glypher er en del af sql-syntaksen, så skal de "escapes",
som det så smukt hedder på dansk.

Det gøres således:

strInputTmp = Request.Form("etellerandetfelt")
strInput = Replace(strInputTmp,"'","''")

strSQL = "UPDATE Table1 Set Field1 = '" & strInput & "' WHERE id=2"

:)

--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

Jakob Munck (24-06-2002)
Kommentar
Fra : Jakob Munck


Dato : 24-06-02 22:25

>
> Det virker også meget godt, men hvis brugeren indtaster fx. OP's altså med
'
> så går den i fejl. Kan det være rigtig, at man ikke kan anvende det ?
>

Prøv at sætte denne kode ind til konvertering af dataindput, inden det går i
databasen:

indput = replace(indput, vbcrlf, "<br>" & vbcrlf)
indput = replace(indput, """", "&#34;", 1, -1, 1)
indput = replace(replace(indput, """", "&#34;", 1, -1, 1), "'", "&#39;",
1, -1, 1)


v.h.
Jakob Munck



Jakob Andersen (24-06-2002)
Kommentar
Fra : Jakob Andersen


Dato : 24-06-02 22:12

"Jakob Munck" <jakob.munck@tdcadsl.dk> wrote in message
news:3d17893d$0$78749$edfadb0f@dspool01.news.tele.dk...
> Prøv at sætte denne kode ind til konvertering af dataindput, inden det går
i
> databasen:
> indput = replace(indput, vbcrlf, "<br>" & vbcrlf)
> indput = replace(indput, """", "&#34;", 1, -1, 1)
> indput = replace(replace(indput, """", "&#34;", 1, -1, 1), "'", "&#39;",
> 1, -1, 1)

Dette vil skabe ekstremt ubrugbar data hvis det skal bruges i andre
sammenhænge end HTML

--
Jakob Andersen



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste