/ 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
erstat special tegn som > og '
Fra : Christian M. Nielsen


Dato : 27-11-02 21:35

Hvordan er det nu lige man undersøger og erstatter specialtegn som < > og '
inden de sendes til databasen?

Og hvordan ændres de tilbage igen når de skal vises?

Er der en liste over de forskellige koder for tegnene?

--

Mvh / Regards

-=< Christian >=-
ICQ: 25308942
http://www.cmnielsen.dk
Hvis man kloner en sørøver, får man så en piratkopi?



 
 
N9 (27-11-2002)
Kommentar
Fra : N9


Dato : 27-11-02 21:57



> Og hvordan ændres de tilbage igen når de skal vises?

f.eks.

tekst = Replace(Request.Form("username")," ' ","¤" )


> Er der en liste over de forskellige koder for tegnene?

tekst = Replace(rs("tekst_fra databasen"),"¤"," ' " )

N9



Philip (27-11-2002)
Kommentar
Fra : Philip


Dato : 27-11-02 23:02

> Er der en liste over de forskellige koder for tegnene?

' &#39;
< &lt;
> &gt;
" &quot;



Jens Gyldenkærne Cla~ (27-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 27-11-02 23:23

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

Jesper Stocholm (28-11-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 28-11-02 00:19

Jens Gyldenkærne Clausen wrote :

> 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:

> Dog skal man _ikke_ benytte htmlencode hvis teksten skal vises i et
> inputfelt.

joeh ... hvis data kan indeholde " eller '

fx kan følgende opstå:

<input type="text" name="field" value="<% = strText %>"/>

Hvis strText er lig strengen

Hunden sagde "vov".

Vil HTML komme til at se således ud:

<input type="text" name="field" value="Hunden sagde "vov"."/>

og det er ikke valid HTML. Det er det til gengæld, hvis man inden
anvender Server.HTMLEncode, så det bliver til

<input type="text" name="field" value="Hunden sagde &quot;vov&quot;."/>

For brugeren vil dette dog være transparent.



--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se http://asp-faq.dk

Jens Gyldenkærne Cla~ (28-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 28-11-02 00:38

Jesper Stocholm skrev:

>> Dog skal man _ikke_ benytte htmlencode hvis teksten skal
>> vises i et inputfelt.
>
> joeh ... hvis data kan indeholde " eller '

Hm - jeg kan ikke lige finde ud af hvad jeg har tænkt på. Jeg synes
at der var nogle sammenhænge hvor HTMLencode ikke virkede efter
hensigten, men det er åbenlyst ikke her.
--
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

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

Månedens bedste
Årets bedste
Sidste års bedste