pepss skrev:
> Function plingEscape(tekst)
> plingEscape = Replace(tekst & "", "'", "''")
> End function
Hvordan bruger du funktionen?
> en af de steder er et "brev system" men har går det lidt galt!
> hvis man sender et brev hvor der stå " hej do' " bliver det så
> indsat som " hej do'' " besvar man så brevet kommer der så til
> at stå " hej do '''' "
Så bruger du funktionen et sted hvor den ikke skal bruges. Pointen
med funktionen er at den netop ikke ændrer på teksten - den escaper
bare tegnet ' (apostrof/enkelt anførselstegn) så det opfattes
korrekt af databasen.
Der skal erstattes hvis du skal sende data _til_ databasen med en
sql-streng:
sql = "UPDATE foo SET bar = '" & plingEscape(formtekst) & "' ...
sql = "INSERT INTO foo (foobar) VALUES ('" & plingEscape(formte...
Der skal _ikke_ erstattes med plingEscape hvis du henter data fra
databasen:
Response.write rs("tekst")
(her skal der muligvis erstattes linjeskift med <br>, men det er en
anden sag).
Der skal heller ikke erstattes med plingEscape hvis du gemmer data
ved hjælp af et postsæt:
sql = "SELECT * FROM tekster WHERE id = 42"
set rs = Conn.Execute(sql)
rs.Edit
rs("tekstfelt") = tekstvariabel
Hvis man skal vise tekst i et input-felt, skal man sørge for at der
ikke opstår konflikter mellem anførselstegn om value-parameteren og
anførselstegn i teksten.
Følgende eksempler går godt:
<input value='Her er et "-tegn'>
<input value="Her er et '-tegn">
<input value="Her er et "-tegn">
Følgende eksempler virker ikke:
<input value="Her er et "-tegn">
<input value="Her er et ""-tegn">
<input value="Her er et \"-tegn">
Dobbelte anførselstegn kan i html kun escapes med en entitet -
enten " eller "
Bruger man asp kan det klares automatisk med Server.HTMLencode.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html