Christian M. Nielsen skrev:
> Hvordan er det nu lige man undersøger og erstatter specialtegn
> som < > og ' inden de sendes til databasen?
Ingen af de nævnte tegn er specialtegn i forhold til en database.
Glyffen (') kræver særbehandling for ikke at blive forvekslet med
det anførselstegn der afgrænser en tekstværdi. Man escaper ' ved at
dublere den - skal man fx indsætte teksten Mc'Allan skal det
skrives:
INSERT INTO tabel (feltnavn) VALUES ('Mc''Allan')
Erstatningen klares med Replace(variabel, "'", "''"). På den måde
gemmer du den rigtige tekst i databasen - den ekstra glyf er kun
med som escapetegn, og gemmes altså _ikke_ i databasen.
> Og hvordan ændres de tilbage igen når de skal vises?
Når data skal vises på en side er det et andet problem du skal tage
højde for. Her er der ingen risiko for "kuk" i sqlsætningen, men
til gengæld kan der være tekster der vises forkert, hvis indholdet
af et felt indeholder tegn der fortolkes som html-kode.
Den lette - og sikre - måde at få alle tegn vist "som sig selv" er
ved at benytte Server.HTMLencode - altså fx
<%= Server.HTMLencode(rs("navn")) %>
Dog skal man _ikke_ benytte htmlencode hvis teksten skal vises i et
inputfelt.
Vil man have visse tags vist på siden kræver det lidt ekstraarbejde
- spørg hvis det er nødvendigt.
> Er der en liste over de forskellige koder for tegnene?
Du kan søge på "html entities" hvis du vil se html-koderne for
forskellige specialtegn. Men du behøver ikke bruge det til noget -
Server.HTMLencode klarer jobbet i en håndevending.
--
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